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

libgit2 1.8.0 libgit2@1.7 1.7.2 (new formula) #166767

Merged
merged 60 commits into from
Jul 17, 2024

Conversation

branchvincent
Copy link
Member

Created with brew bump-formula-pr.

release notes
v1.8
----

This is release v1.8.0, "Das Fliegende Klassenzimmer". This release includes optional, experimental support for invoking OpenSSH to fetch and push, an easier mechanism to perform the default behavior of git commit, and has many improvements for worktrees. This release also includes many other new features and bugfixes.

Major changes

Breaking changes

  • Adding WORKTREE configuration level (ABI breaking change)
    To support worktree configurations at the appropriate level (higher priority than local configuration, but lower priority than app-specific configuration), the GIT_CONFIG_LEVEL_WORKTREE level was introduced at priority 6. GIT_CONFIG_LEVEL_APP now begins at priority 7.

  • Changes to git_config_entry (ABI breaking change) The git_config_entry structure now contains information about the backend_type and origin_path. The unused payload value has been removed.

  • git_push_options includes remote push options (ABI breaking change)
    The git_push_options structure now contains a value for remote push options.

Other changes

New features

Bug fixes

Build and CI improvements

Documentation improvements

Platform compatibility fixes

Git compatibility fixes

Dependency updates

New Contributors

Full Changelog: libgit2/libgit2@v1.7.0...v1.8.0

@github-actions github-actions bot added automerge-skip `brew pr-automerge` will skip this pull request bump-formula-pr PR was created using `brew bump-formula-pr` labels Mar 21, 2024
@bevanjkay bevanjkay added the long build Set a long timeout for formula testing label Mar 21, 2024
@bevanjkay bevanjkay added CI-long-timeout [DEPRECATED] Use longer GitHub Actions CI timeout. CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. labels Mar 21, 2024
@chenrui333 chenrui333 removed the automerge-skip `brew pr-automerge` will skip this pull request label Mar 21, 2024
Formula/p/pygit2.rb Outdated Show resolved Hide resolved
Formula/r/rust.rb Outdated Show resolved Hide resolved
@bevanjkay
Copy link
Member

@carlocab Should we wait for LLVM to land before doing too much here?

@github-actions github-actions bot removed the CI-long-timeout [DEPRECATED] Use longer GitHub Actions CI timeout. label Mar 21, 2024
@carlocab
Copy link
Member

@carlocab Should we wait for LLVM to land before doing too much here?

Yea, probably. We probably want to wait a bit for dependents to pick up compatibility anyway.

Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a help wanted or in progress label.

@github-actions github-actions bot added the stale No recent activity label Mar 23, 2024
@branchvincent branchvincent added in progress Stale bot should stay away and removed stale No recent activity labels Mar 23, 2024
@cho-m
Copy link
Member

cho-m commented Apr 11, 2024

Similar to Python (pygit2) formulae, Rust (git2 / libgit2-sys) formulae are probably in a similar/slightly-worse situation as locked dependencies mean they can only use a specific major/minor libgit2.

Anyway, links to some upstream PRs / unreleased commits:

@github-actions github-actions bot added the automerge-skip `brew pr-automerge` will skip this pull request label May 13, 2024
@chenrui333 chenrui333 mentioned this pull request May 18, 2024
@github-actions github-actions bot added the long dependent tests Set a long timeout for dependent testing label Jun 7, 2024
@branchvincent branchvincent mentioned this pull request Jun 8, 2024
@SMillerDev
Copy link
Member

Merging #172078 into this and doing a rebase.

Formula/lib/libgit2.rb Outdated Show resolved Hide resolved
@ethomson
Copy link
Contributor

I added a suggested change to bump to libgit2 v1.8.1. If that doesn't unblock us, I've prepared a v1.8.2 rc1 that reverts a change to git_commit functions. I'm not sure if that's really needed here or not, I'd love to understand better.

@SMillerDev
Copy link
Member

Any way we can update the git crate in rust? https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md#0190---2024-06-13 should work.

@github-actions github-actions bot added the CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. label Jul 17, 2024
@BrewTestBot BrewTestBot added this pull request to the merge queue Jul 17, 2024
Merged via the queue into Homebrew:master with commit 55ca882 Jul 17, 2024
15 checks passed
@branchvincent branchvincent deleted the bump-libgit2-1.8.0 branch July 17, 2024 14:01
@chenrui333
Copy link
Member

@branchvincent Thanks for the great work on this!

@branchvincent
Copy link
Member Author

thanks @bevanjkay and @SMillerDev for the help 💯

Copy link
Contributor

@branchvincent bottle request for cargo-c failed.

@carlocab
Copy link
Member

Hi @ethomson, thanks for checking in!

👋 I'm sad to see this PR is so involved. Can you help me understand what the problem(s) is (are) and how I can help?

The difficulty with this PR is that we can only update the libgit2 formula when all its dependents are compatible with the new version.

We can of course, move some of the laggards to a libgit2@1.7 (which is what we've done here), but that solution isn't always ideal:

  • that means an extra formula that we have to maintain
  • this isn't always possible because this can sometimes result in formulae depending on two different versions of libgit2 simultaneously (e.g. A depends on B and C, but B depends on the latest libgit2 but C depends on an older libgit2)

Do we need to drag the entire ecosystem along because we made an ABI change or updated the soversion? If so, it looks like we need to be much more aggressive about ABI compatibility in the future.

Being more careful about maintaining ABI compatibility would indeed help! Your security policy of supporting the latest two versions is also helpful for us (because that allows us to package a slightly older version), but we'd love it if the typical libgit2 upgrade was ABI compatible with the older one (for reasons discussed above).

@ethomson
Copy link
Contributor

Thanks for the details. These are often things that seem not so obvious in the small scale. It's only when you see them in the macro that you realize just how gnarly this is. 🙏

@injust
Copy link

injust commented Jul 18, 2024

I think this broke the git-interactive-rebase-tool formula. How can I work around this and similar issues in the meantime?

@branchvincent
Copy link
Member Author

oops, not sure how that was missed. #177681 will fix

@darthShadow
Copy link
Contributor

Looks like jj also got missed from this: #177686

@chenrui333 chenrui333 mentioned this pull request Jul 18, 2024
6 tasks
@chenrui333 chenrui333 changed the title libgit2 1.8.0 libgit2 1.8.0 libgit2@1.7 1.7.2 (new formula) Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge-skip `brew pr-automerge` will skip this pull request bump-formula-pr PR was created using `brew bump-formula-pr` CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. in progress Stale bot should stay away long build Set a long timeout for formula testing long dependent tests Set a long timeout for dependent testing new formula PR adds a new formula to Homebrew/homebrew-core no long build conflict Do not allow merging other pull requests when files conflict with this one ready to merge PR can be merged once CI is green
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants