{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":115038646,"defaultBranch":"main","name":"rules_pkg","ownerLogin":"bazelbuild","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-12-21T19:14:08.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11684617?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711116613.0","currentOid":""},"activityList":{"items":[{"before":"c8d6a0294d6d507e9dbf5836a12b91e2fb70fdaa","after":"bf4609b2779ea7bb6e3498ed8a25ca1204f07c3c","ref":"refs/heads/main","pushedAt":"2024-05-01T13:12:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Append workspace name to the runfiles directory name for `pkg_files` (#864)\n\n* Fix pkg_files_contents_test\r\n\r\nThe test wasn't asserting anything about the destination path because it\r\nwas missing the `env` positional parameter; the \"assert_true\" was tested\r\nagainst the assertion message (which always evaluates to True as a\r\nnon-empty string).\r\n\r\n* Test pkg_files runfiles destination paths\r\n\r\n* Append workspace name in runfiles in pkg_files\r\n\r\nCommit a811e7f44f09a2348735527fd999f04df8a7dbc7 recently fixed an issue\r\nwhere the workspace name was missing from the path for runfiles added\r\nvia `pkg_tar` and some other rules.\r\n\r\nThis extends the fix to `pkg_files` as well.","shortMessageHtmlLink":"Append workspace name to the runfiles directory name for pkg_files (#…"}},{"before":"9616a33e43e1522b40f8df2c27e292ae5181b04f","after":"c8d6a0294d6d507e9dbf5836a12b91e2fb70fdaa","ref":"refs/heads/main","pushedAt":"2024-04-29T14:22:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Exclude release from filename when using release_file (#863)\n\n* Exclude release from filename when using release_file\r\n\r\nWhen we're using `release_file` in lieu of `release` we're just\r\npointing rpmbuild at the file containing the `Release` string and we\r\ndon't have it available to inject into the filename resulting in a\r\nstrange looking filename of the form `Foo-version-.arch.rpm`.\r\n\r\nThis change extracts the RPM name generation to a single helper,\r\n`_make_rpm_filename` and tweaks it s.t. if we're missing the value for\r\n`release` we'll just exclude it from the filename format instead.\r\n\r\n* Fix test broken test\r\n\r\nThe test had was using the odd RPM name structure and this change\r\ntweaks it so that the test passes.","shortMessageHtmlLink":"Exclude release from filename when using release_file (#863)"}},{"before":"21e1cccbc36cc2995b9f31616783da5533a91c47","after":"9616a33e43e1522b40f8df2c27e292ae5181b04f","ref":"refs/heads/main","pushedAt":"2024-04-29T14:02:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"fix: Not all runfiles are single files (#860)\n\n* fix: Not all runfiles are single files\r\n\r\nHandle cases where the defaultInfo file is a directory\r\n\r\n* Add test case","shortMessageHtmlLink":"fix: Not all runfiles are single files (#860)"}},{"before":"581a86a29458b5f4fc580d7889f9bc3f591f25a2","after":"21e1cccbc36cc2995b9f31616783da5533a91c47","ref":"refs/heads/main","pushedAt":"2024-04-24T20:14:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Add support for \"Epoch\" attributes in RPMs (#858)","shortMessageHtmlLink":"Add support for \"Epoch\" attributes in RPMs (#858)"}},{"before":"a811e7f44f09a2348735527fd999f04df8a7dbc7","after":"581a86a29458b5f4fc580d7889f9bc3f591f25a2","ref":"refs/heads/main","pushedAt":"2024-04-24T20:03:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Add support for generating debuginfo RPMs (#842)\n\n* Enable creation and capture of debuginfo RPMs\r\n\r\nThis change enables the creation and capture of debuginfo RPMs on\r\nFedora40 and CentOS7.\r\n\r\nSee:\r\nhttps://docs.fedoraproject.org/en-US/packaging-guidelines/Debuginfo/\r\n\r\nFedora 40 expects the RPM contents to be located in a subdirectory\r\nwhich is specified using the `buildsubdir` variable. In order to\r\naccount for this, we need to tweak some of the location details if\r\ndebuginfo is enabled.\r\n\r\nCentOS expects `buildsubdir` to have a value like `.` instead.\r\n\r\nIn both cases, we disable debugsource packages by ensuring that we\r\nundefine `_debugsource_packages`, otherwise we'll try to generate them\r\nalongside the debuginfo packages and will fail.\r\n\r\nWe only want this method of producing debuginfo to apply when we're\r\nusing the system `rpmbuild` because the underlying behaviour is\r\ncontrolled by a combination of the rpmbuild version, macro\r\ndefinitions, find-debuginfo.sh, and debugedit. If we were to expand\r\nthis to use a hermetic debuginfo then a different approach might be\r\ndesirable.\r\n\r\n* Add an RPM example that generates debuginfo\r\n\r\nThis provides a basic example that generates a debuginfo RPM\r\nconfigured to run on CentOS7.\r\n\r\n* Upgrade rules_python to 0.31.0\r\n\r\nrules_python seems to fail us when we're generating debuginfo RPMs\r\nunless we upgrade to a version more recent than 0.24.0.\r\n\r\n* Only generate debuginfo RPM when pkg_rpm() asks for it\r\n\r\nIn lieu of enabling this behaviour by default on the supported\r\nplatforms, we add an additional argument to the pkg_rpm() rule that\r\nwill allow us to enable it for pkg_rpm() targets. This prevents us\r\nfrom enabling it in cases where it's not desired.\r\n\r\n* Add test for building debuginfo RPM\r\n\r\nThis test is modelled on the subrpm test. In lieu of using a simple\r\ntext file as an input it instead generates a binary that includes\r\ndebug symbosl from a C source file and includes that in the RPM.\r\n\r\nThe baseline comparison strips out the `.build-id` paths because the\r\nhashes that are generated may not be stable.x\r\n\r\n* Remove architecture and size from debuginfo test output\r\n\r\nThese values may vary depending on the platform that this is being run\r\non and we don't really care about them.\r\n\r\n* Add period to docstring\r\n\r\n* Enable debuginfo support for CentOS Stream 9\r\n\r\nCentOS Stream 9 appears to work more or less the same for debuginfo\r\ngeneration as CentOS 7. `os-release` describes it as os == `centos`\r\nand version == `9`. This change creates an extra token for `centos9`\r\nand sticks it in the places where we currently have controls for\r\n`centos7`.","shortMessageHtmlLink":"Add support for generating debuginfo RPMs (#842)"}},{"before":"7849529f897eab69621454c88749fd990cf1c70f","after":"a811e7f44f09a2348735527fd999f04df8a7dbc7","ref":"refs/heads/main","pushedAt":"2024-04-24T03:36:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Append the workspace name to the runfiles directory name (#856)\n\nThe runfiles directory is broken down by workspace name. This means that\r\nfiles belonging to the main workspace are placed at\r\n\"${name}.runfiles/${ctx.workspace_name}/${short_path}\". Files belonging\r\nto externals have a short_path starting with \"../${external_name}\".\r\n\r\nBecause we currently don't append ctx.workspace_name to the computed\r\nrunfiles path, files belonging to the main workspace are placed at the\r\ntop level of the runfiles directory, which is incorrect. Even worse is\r\nthat files belonging to external repositories end up alongside the\r\nrunfiles directory, instead of being contained within.","shortMessageHtmlLink":"Append the workspace name to the runfiles directory name (#856)"}},{"before":"e604010237b87c6acfcdee3e0a41ce0e933b58c5","after":"7849529f897eab69621454c88749fd990cf1c70f","ref":"refs/heads/main","pushedAt":"2024-04-24T02:56:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Enable pkg_rpm and pkg_subrpm to create empty RPMs (#859)\n\n* Enable pkg_rpm and pkg_subrpm to create empty RPMs\r\n\r\nAt present we fail in two ways if we try to create empty RPMs:\r\n\r\n- we expect srcs to be both non-empty and will fail if it is\r\n empty and we have no spec file\r\n\r\n- we don't emit anything for the `%files` block in the RPM if\r\n there are no actual files and rpmbuild doesn't like this\r\n\r\nThis change tweaks the former condition so that srcs has to be\r\nnon-None or we have to have a specfile, but will allow us to have an\r\nempty (`[]`) value for srcs. Additionally, it injects\r\n`%defattr(-,root,root)` as a reasonable default for the `%files`\r\nblocks so as to allow rpmbuild to be happy with what we're providing.\r\n\r\n* Inject default file mode unconditionally\r\n\r\nWe should be safe to inject this unconditionally instead of special\r\ncasing on whether or not we have no actual files.\r\n\r\n* Fixup wrong append","shortMessageHtmlLink":"Enable pkg_rpm and pkg_subrpm to create empty RPMs (#859)"}},{"before":"dc21c281864f4fb7630f2d2ea34c7a58d8b178b3","after":"e604010237b87c6acfcdee3e0a41ce0e933b58c5","ref":"refs/heads/main","pushedAt":"2024-04-18T04:25:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"pkg_tar: if symlink starts with ./, keep it absolute (#854)\n\nFor the `symlink` attribute of `pkg_tar`, if the path begins\r\nwith ./, preserve the path rather than prefixing package_dir.\r\nThis allows graceful migration for some uses who rely on\r\nthe previous package_dir behavior.","shortMessageHtmlLink":"pkg_tar: if symlink starts with ./, keep it absolute (#854)"}},{"before":"36433a92a4eacd2faab9133278f7493679a7eed5","after":"dc21c281864f4fb7630f2d2ea34c7a58d8b178b3","ref":"refs/heads/main","pushedAt":"2024-04-17T22:44:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"create empty MODULE.bazel files in examples to bazel does not complain (#855)","shortMessageHtmlLink":"create empty MODULE.bazel files in examples to bazel does not complain ("}},{"before":"626de3ac59c331265adc83e842e1a203bdb57eb8","after":"36433a92a4eacd2faab9133278f7493679a7eed5","ref":"refs/heads/main","pushedAt":"2024-04-17T02:17:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Update to new stardoc so we can work with bzlmod. (#853)\n\n* Update to new stardoc so we can work with bzlmod.\r\n* Requires update to merge.py to account for stardoc changes.\r\n* put integration test back on bazel at head.\r\n\r\nFixes #808","shortMessageHtmlLink":"Update to new stardoc so we can work with bzlmod. (#853)"}},{"before":"bf30ed9e9b3710a54990d0c82d478dc8e60f1633","after":"626de3ac59c331265adc83e842e1a203bdb57eb8","ref":"refs/heads/main","pushedAt":"2024-04-16T19:43:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"add missing license(). remove licenses(notice) (#742)","shortMessageHtmlLink":"add missing license(). remove licenses(notice) (#742)"}},{"before":"0b5d943a50297e38b52ff1da66d2ab04f1fcfc65","after":"bf30ed9e9b3710a54990d0c82d478dc8e60f1633","ref":"refs/heads/main","pushedAt":"2024-04-16T08:38:15.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"meteorcloudy","name":"Yun Peng","path":"/meteorcloudy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4171702?s=80&v=4"},"commit":{"message":"Force stardoc integration test to run with bazel 7.0.0 (#852)\n\nForce the integration test (stardoc and packaging) to run with bazel\r\n7.0.0.\r\nBazel at head seems to have broken --noenable_bzlmod in some cases. See\r\n#808.\r\n\r\nThis also bumps platforms to the latest, but that was a red herring from\r\nthe error message in the underlying problem","shortMessageHtmlLink":"Force stardoc integration test to run with bazel 7.0.0 (#852)"}},{"before":"59e682ddf1a47c8ab7c0fbffbe8485d7061048f3","after":"0b5d943a50297e38b52ff1da66d2ab04f1fcfc65","ref":"refs/heads/main","pushedAt":"2024-04-16T02:21:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"rpm: Add conflicts and obsoletes to sub RPMs (#851)\n\nThis change brings the sub RPM rules closer to parity with both\r\nreality and the parent RPM rules by adding the `Conflicts` and\r\n`Obsoletes` fields to them.","shortMessageHtmlLink":"rpm: Add conflicts and obsoletes to sub RPMs (#851)"}},{"before":"a56b1d9d339b70c01f92db74d62f4973a789f0fd","after":"59e682ddf1a47c8ab7c0fbffbe8485d7061048f3","ref":"refs/heads/main","pushedAt":"2024-04-10T13:35:02.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lberki","name":null,"path":"/lberki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3524818?s=80&v=4"},"commit":{"message":"Indirect .files_to_run and .default_runfiles through DefaultInfo. (#848)\n\nThe old ways are going away.","shortMessageHtmlLink":"Indirect .files_to_run and .default_runfiles through DefaultInfo. (#848)"}},{"before":"e14245aa9653b462f60a9f202d25fd5956983e03","after":"a56b1d9d339b70c01f92db74d62f4973a789f0fd","ref":"refs/heads/main","pushedAt":"2024-04-02T15:48:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"trying scorecard update one more time (#841)\n\n* trying scorecard update one more time","shortMessageHtmlLink":"trying scorecard update one more time (#841)"}},{"before":"dcce3e64485dbc15f85c10a18db3ad1dc04558e4","after":"e14245aa9653b462f60a9f202d25fd5956983e03","ref":"refs/heads/main","pushedAt":"2024-03-28T14:34:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"use sys.exit() instead of exit() (#844)","shortMessageHtmlLink":"use sys.exit() instead of exit() (#844)"}},{"before":"15d628ddfc87cc6c79c9980953ecc83c1fc6021a","after":"dcce3e64485dbc15f85c10a18db3ad1dc04558e4","ref":"refs/heads/main","pushedAt":"2024-03-25T14:51:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Improve handling of sub rpms. (#833)\n\n- Do not create the subrpms files when we don't have to\r\n- Do not add `buildsubdir .` That seems to cause rpmbuild failures with\r\n older rpmbuild.\r\n- General cleanup: Remove tests against None which is needlessly brittle.","shortMessageHtmlLink":"Improve handling of sub rpms. (#833)"}},{"before":"4ed555aa010f422c5c21e58edd0b53e4cc1d0386","after":null,"ref":"refs/heads/aiuto-patch-1","pushedAt":"2024-03-22T14:10:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"}},{"before":"00a9a05559c952a5bdea0cff77dfeb797370edf5","after":"15d628ddfc87cc6c79c9980953ecc83c1fc6021a","ref":"refs/heads/main","pushedAt":"2024-03-22T14:10:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Update scorecard.yml (#840)\n\nUpdate scorecard workflow as per https://github.com/ossf/scorecard-action","shortMessageHtmlLink":"Update scorecard.yml (#840)"}},{"before":null,"after":"4ed555aa010f422c5c21e58edd0b53e4cc1d0386","ref":"refs/heads/aiuto-patch-1","pushedAt":"2024-03-22T13:46:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Update scorecard.yml\n\nUpdate scorecard workflow as per https://github.com/ossf/scorecard-action","shortMessageHtmlLink":"Update scorecard.yml"}},{"before":"f6d5046fa7cdd708639bf478dd216e28c18b6fa0","after":"00a9a05559c952a5bdea0cff77dfeb797370edf5","ref":"refs/heads/main","pushedAt":"2024-03-22T13:29:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"update scorecard workflow to newer nodejs setup (#839)\n\nAll the runs started failing with messages from github about node 16 not\r\nbeing supported and needing node 20. I hop this helps","shortMessageHtmlLink":"update scorecard workflow to newer nodejs setup (#839)"}},{"before":"a0eb69a1f33109cea208fe64dcef390c74e6be53","after":"f6d5046fa7cdd708639bf478dd216e28c18b6fa0","ref":"refs/heads/main","pushedAt":"2024-03-21T19:25:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Stop using datetime.utcfromtimestamp() (#838)\n\nFixes #826","shortMessageHtmlLink":"Stop using datetime.utcfromtimestamp() (#838)"}},{"before":"20100ce9827e886f9107cbd2758c18e90af07e69","after":"a0eb69a1f33109cea208fe64dcef390c74e6be53","ref":"refs/heads/main","pushedAt":"2024-03-21T14:04:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Add support for no parent directory inference (#832) (#834)\n\nAdd feature as described in #832.\r\n\r\nRELNOTES: Automatic creation of parent directory specifications for\r\npaths with depth can be prevented in `pkg_tar` archives by setting `create_parents=False`.","shortMessageHtmlLink":"Add support for no parent directory inference (#832) (#834)"}},{"before":"c53ff51070c96b368188f057a6683d97c31b77f7","after":"20100ce9827e886f9107cbd2758c18e90af07e69","ref":"refs/heads/main","pushedAt":"2024-03-21T03:44:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Remove expand_yml.py. (#837)\n\nIt is not used by anything and my security team is complaing about vulns.\r\nThis is the path of least resistance.","shortMessageHtmlLink":"Remove expand_yml.py. (#837)"}},{"before":"2aa2b8e842894e0c383817cdf3b1f4a6e96fcc3e","after":"c53ff51070c96b368188f057a6683d97c31b77f7","ref":"refs/heads/main","pushedAt":"2024-03-15T14:53:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"fix some nits and buildifier warnings (#831)","shortMessageHtmlLink":"fix some nits and buildifier warnings (#831)"}},{"before":"61132feb47add139967476401baa49cf4b7c6b2a","after":"2aa2b8e842894e0c383817cdf3b1f4a6e96fcc3e","ref":"refs/heads/main","pushedAt":"2024-03-15T02:36:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Add pkg_sub_rpm rule for RPM subpackages (#824)\n\n* rpm: Add support for sub packages to make_rpm.py script\r\n\r\nBefore we can enable support for sub RPM building as part of a single\r\n`pkg_rpm()` rule we must add the underlying support to make_pkg.py\r\nwhich is the underlying driver for `pkg_rpm()`.\r\n\r\nThis covers three pieces:\r\n\r\n * specifying `buildsubdir` rpm variable\r\n * capturing multiple RPM files as outputs\r\n * injecting sub RPM definitions into specfile\r\n\r\n* rpm: Factor out rpm_ctx helper\r\n\r\nThe various processing functions pass around a bunch of collections\r\neverywhere which is a bit fragile. This collects them together into a\r\nstruct to make it a bit less messy.\r\n\r\n* rpm: Factor out _process_dep() helper function\r\n\r\n_process_dep() handles processing an individual dep and is currently\r\ncalled from the processing loop. We'll need to re-use this logic for\r\nprocessing individual sub RPMs as well so we want it in a helper.\r\n\r\n* rpm: Capture generated output RPM files in rpm_ctx\r\n\r\nCurrently we only generate one RPM file, but once we generate sub RPM\r\nfiles we'll need to be able to capture those outputs as well. This\r\nprepares us for that step.\r\n\r\n* rpm: Add args for make_rpm to rpm_ctx\r\n\r\nWe'll need to add additional arguments to make_rpm for sub RPM\r\nbuilding. It's easier to capture this in our context object than to\r\ntry to shuttle these bits around.\r\n\r\n* rpm: Pass correct `--name` argument to make_rpm\r\n\r\nIf we don't pass the correct RPM name to `make_rpm.py` than we won't be\r\nable to correctly determine the subrpm names. Currently, the name is\r\nonly used by `make_rpm` to generate some progress output, so this\r\nshouldn't break anything internally.\r\n\r\n* rpm: Implementation of `pkg_sub_rpm` rule\r\n\r\nThis introduces a `pkg_sub_rpm` rule that allows us to generate and\r\ncapture RPM subpackages and generate them as part of a single RPM\r\ninvocation in lieu of cobbling this together from multiple RPM rules.\r\nThis has a few benefits:\r\n\r\n- faster execution due to single rpmbuild invocation\r\n- sharing configuration between RPMs in the same fashion as vanilla\r\n RPM building from a specfile\r\n- will enable the proper construction of debuginfo RPMs in a later PR\r\n\r\nThe current implementation *only* works with non-specfile based rules\r\nand currently allows for a subset of the general RPM configuration.\r\n\r\nInternally, the process is for `pkg_sub_rpm` to generate a\r\nPackageSubRPMInfo provider that will subsequently get consumed by the\r\n`pkg_rpm` rule that generates the actual RPMs. We re-use the internal\r\ndependency processing logic that's used by the top-level RPM to\r\ngenerate the content related to the sub-RPM.\r\n\r\n* rpm: Update entry points for RPM rules to include pkg_sub_rpm\r\n\r\nThis change updates `rpm.bzl` in two ways to account for sub RPMs:\r\n\r\n- it adds an entrypoint for `pkg_sub_rpm`\r\n\r\n- it adds a check in `pkg_rpm` to assert incompatibility with\r\n `spec_file`\r\n\r\n* examples: Add an example of how to use the subrpm rule\r\n\r\nThis provides a basic example using the `pkg_sub_rpm` rule to generate\r\nmultiple RPMs.\r\n\r\n* Fix buildifier noise\r\n\r\n* Fix make_rpm failures\r\n\r\n* doc: Clean up sub-RPM docstring and add to doc_build\r\n\r\nThe initial docstring for pkg_sub_rpm is not great, so this change\r\nfixes that while adding this to the list of rules to have\r\ndocumentation generated for them.\r\n\r\n* doc: Additional documentation for subrpms in pkg_rpm\r\n\r\nThis clarifies the `subrpms` attribute usage as well as indicating the\r\nincompatibility with `spec_file` mode.\r\n\r\n* Fix issue in subrpm passthrough\r\n\r\nWhen adding the check to verify if we can use subrpms, this pass\r\nthrough wasn't added.\r\n\r\n* Add a basic test for pkg_sub_rpm\r\n\r\nThis introduces a basic test with a single sub RPM and main RPM each\r\ncontaining a single source file.\r\n\r\n* Tweaks to test\r\n\r\n* Test fixes for CentOS 7\r\n\r\nThe `rpm` version on CentOS 7 doesn't work exactly the same way as\r\nnewer versions of rpm and requires a `-p` parameter to inspect\r\nnon-installed RPMs. CentOS 7 also inserts a `Relocations` field that\r\nwe didn't see on other platforms so we'll filter that out to make our\r\ntest a bit more portable.\r\n\r\n* Move PackageSubRPMInfoProvider into rpm_pfg.bzl\r\n\r\nThis is private to the RPM rules so should probably live there.","shortMessageHtmlLink":"Add pkg_sub_rpm rule for RPM subpackages (#824)"}},{"before":"56072594a855726511c7ecf920ef0e2297684383","after":"61132feb47add139967476401baa49cf4b7c6b2a","ref":"refs/heads/main","pushedAt":"2024-02-29T15:04:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"fix: remove unused glob patterns (#825)\n\nSome glob patterns do not match any file, which makes building with --incompatible_disallow_empty_glob produce an error.\r\nWe should be able to just remove them.","shortMessageHtmlLink":"fix: remove unused glob patterns (#825)"}},{"before":"d7ff3e6e52937fdeefbd41d91c54806488ef1c5f","after":"56072594a855726511c7ecf920ef0e2297684383","ref":"refs/heads/main","pushedAt":"2024-02-28T14:14:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Provide more examples for pkg_rpm() (#823)\n\n* Move prebuilt_rpmbuild example into rpm subdirectory\r\n\r\nThis will help us be a bit more organized as we add a few more\r\nRPM-based examples for rules_pkg.\r\n\r\n* Fix WORKSPACE file to account for subdirectory move\r\n\r\nOne we moved this into a subdirectory it was broke because of how it\r\nuses rules_pkg as a local repository.\r\n\r\n* s/readme.md/README.md/\r\n\r\nThe latter seems to be more the norm, so renaming for consistency and\r\nvisibility.\r\n\r\n* Add more detail to README.md for prebuilt_rpmbuild example\r\n\r\nThis adds a bit more detail the description of the `prebuilt_rpmbuild`\r\nexample so that someone can understand it a bit more.\r\n\r\n* Add an example of using system rpmbuild for pkg_rpm()\r\n\r\nThis example is essentially the same as the prebuilt_rpmbuild example\r\nexcept that it uses find_system_rpmbuild() to register the local\r\nversion of `rpmbuild` as the toolchain to use.\r\n\r\n* Add an example with bzlmod using system rpmbuild\r\n\r\nThis is very similar to the non-bzlmod version except we've replaced\r\nthe WORKSPACE file with a MODULE.bazel file.\r\n\r\n* Add an example that doesn't use a specfile for pkg_rpm()\r\n\r\nThis example uses pkg_rpm() to generate the full rpm in lieu of using\r\na standalone specfile.","shortMessageHtmlLink":"Provide more examples for pkg_rpm() (#823)"}},{"before":"52996b06c3013ab349cbbd88f9e009d75a6d18d7","after":"d7ff3e6e52937fdeefbd41d91c54806488ef1c5f","ref":"refs/heads/main","pushedAt":"2024-02-08T22:46:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Update changelog and version numbers. (#819)\n\n* update changelog\r\n\r\n* freshdocs","shortMessageHtmlLink":"Update changelog and version numbers. (#819)"}},{"before":"37cccd4f77042445810b50ca68b2786078808885","after":"52996b06c3013ab349cbbd88f9e009d75a6d18d7","ref":"refs/heads/main","pushedAt":"2024-02-08T20:43:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aiuto","name":null,"path":"/aiuto","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3044252?s=80&v=4"},"commit":{"message":"Temporarily restore //mappings.bzl and //pkg.bzl (#817)\n\n* Restore mappings.bzl and pkg.bzl as a stopgap until https://github.com/protocolbuffers/protobuf/issues/15779 is fixed.\r\n\r\n* bump version number for upcoming patch release","shortMessageHtmlLink":"Temporarily restore //mappings.bzl and //pkg.bzl (#817)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEPuVBAwA","startCursor":null,"endCursor":null}},"title":"Activity · bazelbuild/rules_pkg"}