{"id":20219921,"url":"https://github.com/jamesread/buildid","last_synced_at":"2026-06-10T05:31:10.129Z","repository":{"id":35503188,"uuid":"39773058","full_name":"jamesread/buildid","owner":"jamesread","description":"Version numbers suck. Identify bundles of stuff instead. ","archived":false,"fork":false,"pushed_at":"2021-04-20T22:31:18.000Z","size":112,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-02T12:59:46.922Z","etag":null,"topics":["cli-tool"],"latest_commit_sha":null,"homepage":"http://jamesread.github.io/buildid/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamesread.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-27T12:23:34.000Z","updated_at":"2023-08-16T22:55:35.000Z","dependencies_parsed_at":"2022-08-31T18:51:02.130Z","dependency_job_id":null,"html_url":"https://github.com/jamesread/buildid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jamesread/buildid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesread%2Fbuildid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesread%2Fbuildid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesread%2Fbuildid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesread%2Fbuildid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesread","download_url":"https://codeload.github.com/jamesread/buildid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesread%2Fbuildid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34139178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-tool"],"created_at":"2024-11-14T06:44:18.144Z","updated_at":"2026-06-10T05:31:10.111Z","avatar_url":"https://github.com/jamesread.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# buildid\n`buildid` is a small utility that runs at build-time and gathers up identity \nproperties for a build, and makes it easy to keep that build identity from \nbuild-time all the way through to run-time. \n\nThe public site is published here; http://jamesread.github.io/buildid/\n\n## What is wrong with just using version numbers?\n\n* What does the number actually tell me?\n* Which branch did this build come from?\n* Which source commit does a build come from?\n* What happens if I forget to increment the version number?\n* Version numbers have no meaning in nightly or development builds\n\n## What does this buildid utility do?\n\n### Developers: Where did this running code came from?\n\n```\nuser@host: buildid \n...\ngit.commit=dacab494b5b355e4a1a0e856c672b3cbd421ab0a\ngit.branch=new-feat-2\ntimestamp=1438623621\n...\n```\n\n### Sysadmins: What changed compared to an installed package?\n\nIf your stuff came from an **RPM**, no point in replicating working functionality.\n```\nuser@host: cd /opt/myproject/\nuser@host: ./buildid --changes\nmyproject was installed via an RPM, use \\`rpm -qv myproject\\` to verify it.\n```\n\nBut if you released a **zip** file, this is how it would work;\n\n```\nuser@host: buildid --changes\nORIGINAL_PACKAGE=myproject-1.0.3-windows.zip\nCHANGED_FILES: etc/myproject/configuration.ini (M), /etc/myproject/bar (N)\n```\n\n### Developers need version numbers for packages in a CI build\n\nYou can run `buildid` from a Jenkins job, for example.\n\n```\nuser@host: buildid\nCOMMIT=dacab494b5b355e4a1a0e856c672b3cbd421ab0a\nBRANCH=new-feat-2\nTYPE=nightly\nVERSION_STRING_SIMPLE=1.0.0\nPACKAGE_NAME-myproject-1.0.0-win\nPACKAGE_FILENAME-myproject-1.0.0-win.zip\n```\n\n## FAQ \n\n### Using buildid with Gradle\n\n\tplugins {\n\t\tid \"com.github.jamesread.buildid\" version \"1.10\"\n\t}\n\n\tbuildid.newBuild()\n\t\n\tprintln buildid.get(\"tag\")\n\tprintln buildid.get(\"version.formatted.short\")\n\t... etc\n\n\n### How does this work?\n\nbuildid generates a bunch of facts about your build by looking at files in the\ncurrent directory, it can output these facts in various formats, with a \nproperties file being the default. \n\nYou can define various presets too, in a configuration file `.buildid.cfg`\n\nIn keep track of builds, a .buildid file is generated at build time. \n\n### I want a `.buildid` file in different formats\n\nUse the `-f` flag to specify `properties`, `json` or `yaml`. \n\ntest. 2.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesread%2Fbuildid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesread%2Fbuildid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesread%2Fbuildid/lists"}