-
-
Notifications
You must be signed in to change notification settings - Fork 13k
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
mattermost 8.1.10 → 9.5.1 #291409
mattermost 8.1.10 → 9.5.1 #291409
Conversation
This jumps Mattermost ESR Versions (see [1] for their release cycle). The new version makes use of Go's workspace feature, which unfortunately the buildGoModule function does not (yet?) support [2], which breaks the previous build process for mattermost. Further, the new release also makes use of private modules only included in the (non-free) enterprise version of mattermost which makes it impossible to build in the usual way even outside of nixpkgs's build abstractions [3]. Both issues can be solved by using Go 1.22, which has added support for vendoring when using workspaces, and instructing it to ignore errors with the -e flag. This requires overriding the go-modules derivation's buildPhase, and still produces a functional binary. [1] https://docs.mattermost.com/upgrade/extended-support-release.html [2] NixOS#203039 [3] mattermost/mattermost#26221
Previously, updates of mattermost tended to lag behind upstream's released versions by a minor (security-patch) version or two. This should hopefully make the r-ryantm bot detect future updates automatically. Thanks to Emily Lange for explaining to me how this works!
oh, one more question: adding Is there any benefit to having it separate, or would it make sense to merge these two packages & add an alias for the (cc @mgdelacroix @ppom0 since you are maintainers of the |
hi @stuebinm, when I added |
Does the NixOS test for Mattermost still pass? :-) In other news I'd like to get this one done for 24.05, since that has an integration test for plugin support: |
@ppom0 hm, I see, that's indeed a reason. But perhaps it would be an option to define the |
|
Yes, it would be great indeed! |
should i just do that here in this PR as well? (feels like a slightly different thing, so if it's preferred I'd be happy to open a second PR after this one's been merged) also @ppom0: while doing that, should I add you as maintainer for |
I would recommend keeping this PR to the bump itself and then creating another PR for other changes, such as making Will hit the merge button now, but let this not prevent you from discussing details about the |
@stuebinm I prefer not to be added as a maintainer, thanks for asking! |
Description of changes
This jumps Mattermost ESR Versions (see here for their release cycle). The new version makes use of Go's workspace feature, which unfortunately the
buildGoModule
function does not (yet?) support, which breaks our previous build process for mattermost.Further, the new release also makes use of private modules only included in the (non-free) enterprise version of mattermost which makes it impossible to build in the usual way even outside of nixpkgs's build abstractions if vendoring is required.
Both issues can be solved by using Go 1.22, which has added support for vendoring when using workspaces, and instructing it to ignore missing module errors with the
-e
flag (this works via the newgo work vendor
command; the "missing" modules turn out to be unimportant during the build, so it still succeeds). This requires overriding the go-modules derivation's buildPhase viaoverrideModAttrs
. The resulting binary passes the nixos tests, and I have deployed on a production server without issues.Additionally, @emilylange showed me how to use
passthru.updateScript
, so this PR incorporates this as well. Previously, the versions of mattermost in nixpkgs always tended to lag behind upstream's released versions a little by a minor (security-patch) version or two, and it'd be nice to improve this situation & hopefully this will help.Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.