Skip to content

Conversation

@nightkr
Copy link
Contributor

@nightkr nightkr commented Feb 13, 2025

Description

Fixes #994, see https://github.com/stackabletech/decisions/issues/26#issuecomment-2616006529

In short, this introduces a new patchable tool for editing patch series and managing.

This PR ports Druid 26.0.0 to to the Patchable format. Other products will typically require some normalization before they import cleanly, I would suggest leaving that to one (or more) followup PRs to avoid this PR ballooning too much.

Definition of Done Checklist

  • Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
  • Please make sure all these things are done and tick the boxes
- [x] All added packages (via microdnf or otherwise) have a comment on why they are added
- [x] All packages should have (if available) signatures/hashes verified
- [x] Add an entry to the CHANGELOG.md file
- [ ] Integration tests ran successfully
TIP: Running integration tests with a new product image

The image can be built and uploaded to the kind cluster with the following commands:

bake --product <product> --image-version <stackable-image-version>
kind load docker-image <image-tagged-with-the-major-version> --name=<name-of-your-test-cluster>

See the output of bake to retrieve the image tag for <image-tagged-with-the-major-version>.

@nightkr nightkr requested a review from a team February 14, 2025 16:23
@nightkr nightkr marked this pull request as ready for review February 14, 2025 16:23
NickLarsenNZ

This comment was marked as resolved.

Co-authored-by: Nick <[email protected]>
Copy link
Member

@NickLarsenNZ NickLarsenNZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@nightkr nightkr enabled auto-merge February 17, 2025 14:40
@nightkr nightkr added this pull request to the merge queue Feb 17, 2025
Merged via the queue into main with commit e769383 Feb 17, 2025
3 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Feb 17, 2025
* Add authorship information to Druid 26.0.0 patches

* Add patchable checkout script

* Add patchable export script, convert Druid 26.0.0 patches to patchable

* Scrub commit IDs

* Remove patch count from header

* Add test patches

* Rebase in test patch

* Add docs

* fix: patchable worktree initialization (#977)

* Start rewriting patchable in Rust

* Logging

* Fix broken initial checkout

* Fetch commits individually from upstream instead of cloning

* Make commit IDs deterministic

* Reimplement git-am for better determinism

* Mailsplit each patch file separately

* Simplify worktree checkout logic a bit

* Forward logging from libgit2

* Normalize commits before exporting

* Factor out implementation details from main()

* Modularize

* Start handling errors

* Factor out patch mail parsing

* More error handling

* Snafuize the remaining errors

* Shrink the error types a bit

* Move patchable to rust/patchable for consistency

* Docs

* Remove obsolete patchable.nu

* Add patchable init

* Enforce that base must be a commit ID in patchable.toml

* Ensure that init always fetches base from upstream

* Print worktree directory on checkout

Also move logs to stderr to avoid confusion

* Document how to rebase patch series

* Remove dummy patches

* Documentation and cleanup

* Remove git version suffix from patches

* Skip comments in series file

* Document how to import invalid patch series into patchable

* More documentation

* Add openssl to shell.nix

* Reword docs following @soenkeliebau's comments

#1003 (comment)

* Then begone

* Changelog

* Fix gitignore EOLs

* Update README.md

Co-authored-by: Nick <[email protected]>

* Update README.md

Co-authored-by: Nick <[email protected]>

* Fix FMPP update patch metadata

---------

Co-authored-by: Lukas Krug <[email protected]>
Co-authored-by: Nick <[email protected]>
@nightkr nightkr deleted the spike/patchable branch February 17, 2025 14:41
dervoeti added a commit that referenced this pull request Feb 26, 2025
* Add authorship information to Druid 26.0.0 patches

* Add patchable checkout script

* Add patchable export script, convert Druid 26.0.0 patches to patchable

* Scrub commit IDs

* Remove patch count from header

* Add test patches

* Rebase in test patch

* Add docs

* fix: patchable worktree initialization (#977)

* Start rewriting patchable in Rust

* Logging

* Fix broken initial checkout

* Fetch commits individually from upstream instead of cloning

* Make commit IDs deterministic

* Reimplement git-am for better determinism

* Mailsplit each patch file separately

* Simplify worktree checkout logic a bit

* Forward logging from libgit2

* Normalize commits before exporting

* Factor out implementation details from main()

* Modularize

* Start handling errors

* Factor out patch mail parsing

* More error handling

* Snafuize the remaining errors

* Shrink the error types a bit

* Move patchable to rust/patchable for consistency

* Docs

* Remove obsolete patchable.nu

* Add patchable init

* Enforce that base must be a commit ID in patchable.toml

* Ensure that init always fetches base from upstream

* Print worktree directory on checkout

Also move logs to stderr to avoid confusion

* Document how to rebase patch series

* Remove dummy patches

* Documentation and cleanup

* Remove git version suffix from patches

* Skip comments in series file

* Document how to import invalid patch series into patchable

* More documentation

* Add openssl to shell.nix

* Reword docs following @soenkeliebau's comments

#1003 (comment)

* Then begone

* Changelog

* Fix gitignore EOLs

* Update README.md

Co-authored-by: Nick <[email protected]>

* Update README.md

Co-authored-by: Nick <[email protected]>

* Fix FMPP update patch metadata

---------

Co-authored-by: Lukas Krug <[email protected]>
Co-authored-by: Nick <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integrate/productionize Patchable

7 participants