Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kubo-migrator: add migration from 15 to 16 #344265

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Luflosi
Copy link
Contributor

@Luflosi Luflosi commented Sep 24, 2024

Description of changes

The latest migration is required by the latest Kubo version 0.30.0.
I also rewrote the migration code:

  • Migrate to pkgs/by-name
  • Format with nixfmt-rfc-style
  • Make it possible to remove support for very old migrations in the future by increasing the minRepoVersion parameter
  • Rename kubo-migrator-all-fs-repo-migrations to kubo-fs-repo-migrations since it may no longer include all migrations
  • Add an alias for kubo-migrator-all-fs-repo-migrations to keep backwards compatibility
  • Update descriptions to differentiate between kubo-migrator and kubo-migrator-unwrapped and better describe the purpose of the migrator
  • Add a description to every individual migration
  • Add a description to kubo-fs-repo-migrations
  • Fetch the source code of the individual migrations from their specific Git tags, like upstream intends
  • Enable tests for some migrations
  • Check that the migrations don't crash on startup
  • Mark two broken migrations as broken. They are not compatible with the latest Go versions and upstream is not interested in fixing this
  • Change code to allow most updates to be done by only changing three lines (add new version and change git tag and hash)
  • Add a stub for any disabled or broken migration to prevent downloading unsigned binaries from the internet, see fs-repo-migrations is difficult to package ipfs/fs-repo-migrations#148 (comment) and Implement trustless and verified HTTP retrieval ipfs/fs-repo-migrations#188
  • Use lib.getExe instead of hardcoding the binary name in the kubo NixOS module
  • Use substituteInPlace with --replace-fail instead of --replace

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@Luflosi
Copy link
Contributor Author

Luflosi commented Oct 4, 2024

I decided to now also fetch the source of each migration from their respective git tag, as upstream intended.

- Migrate to pkgs/by-name
- Format with nixfmt-rfc-style
- Make it possible to remove support for very old migrations in the future by increasing the `minRepoVersion` parameter
- Rename kubo-migrator-all-fs-repo-migrations to kubo-fs-repo-migrations since it may no longer include all migrations
- Add an alias for kubo-migrator-all-fs-repo-migrations to keep backwards compatibility
- Update descriptions to differentiate between kubo-migrator and kubo-migrator-unwrapped and better describe the purpose of the migrator
- Add a description to every individual migration
- Add a description to kubo-fs-repo-migrations
- Fetch the source code of the individual migrations from their specific Git tags, like upstream intends
- Enable tests for some migrations
- Check that the migrations don't crash on startup
- Mark two broken migrations as broken. They are not compatible with the latest Go versions and upstream is not interested in fixing this
- Change code to allow most updates to be done by only changing three lines (add new version and change git tag and hash)
- Add a stub for any disabled or broken migration to prevent downloading unsigned binaries from the internet, see ipfs/fs-repo-migrations#148 (comment) and ipfs/fs-repo-migrations#188
- Use `lib.getExe` instead of hardcoding the binary name in the kubo NixOS module
- Use `substituteInPlace` with `--replace-fail` instead of `--replace`
@Luflosi
Copy link
Contributor Author

Luflosi commented Oct 26, 2024

I resolved the conflict.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant