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

sage: 8.2 -> 8.3 #43281

Merged
merged 7 commits into from Aug 4, 2018
Merged

sage: 8.2 -> 8.3 #43281

merged 7 commits into from Aug 4, 2018

Conversation

timokau
Copy link
Member

@timokau timokau commented Jul 10, 2018

Motivation for this change

The first release candidate for 8.3 is out. It will probably still be some time until the proper release. Its easier to keep track on upstream changes by maintaining an unstable sage version. Since working in the open is always better and maybe somebody cares or wants to test/use it, I'm opening this WIP PR for it. If somebody thinks this shouldn't be a PR, feel free to close it.

Notes:

  • the openblas fix is cherry-picked from openblas: backport fix #43234
  • the ipython patch will hopefully be in the latest upstream release by the time sage 8.3 is released

Known issues:

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Fits CONTRIBUTING.md.

@7c6f434c
Copy link
Member

7c6f434c commented Jul 10, 2018

I think given the amount of complexity in upstream sage packaging it is a nice idea to have such a PR in the open.

PS. added some labels, found out that GitHub obviously cannot do a merge of independent label subset operations.

@@ -117,7 +118,12 @@ stdenv.mkDerivation rec {
] ++ stdenv.lib.optional (stdenv.hostPlatform.libc == "musl") "NO_AFFINITY=1"
++ mapAttrsToList (var: val: var + "=" + val) config;

patches = []; # TODO: Remove on next mass-rebuild
patches = [
Copy link
Member

Choose a reason for hiding this comment

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

Why? Please add a comment.

Copy link
Member Author

Choose a reason for hiding this comment

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

Thats the openblas backport I mentioned in the PR description, #43234

@@ -38,6 +39,14 @@ buildPythonPackage rec {
substituteInPlace setup.py --replace "'gnureadline'" " "
'';

patches = [
(fetchpatch {
Copy link
Member

Choose a reason for hiding this comment

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

Why? Please add a comment.

Copy link
Member Author

Choose a reason for hiding this comment

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

Because sage applied that patch and relies on it. As I said in the PR description, I'm guessing/hoping there will be a new ipython release before the final sage 8.3. So that patch will likely never make it into nixpkgs master.

Copy link
Member Author

Choose a reason for hiding this comment

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

@timokau
Copy link
Member Author

timokau commented Jul 10, 2018

I think given the amount of complexity in upstream sage packaging it is a nice idea to have such a PR in the open.

Yah that's the idea :)

PS. added some labels, found out that GitHub obviously cannot do a merge of independent label subset operations.

What do you mean by label subset operations? Race conditions with ofborg adding labels? (Not all that related, but I'm really looking forward to NixOS/ofborg#164.)

@timokau
Copy link
Member Author

timokau commented Jul 10, 2018

In case anybody is testing this and the tests fail, thats because of a transient test failure and not caused by the nix package: https://groups.google.com/d/msg/sage-release/zSCoOwWazww/CtQqMXprBgAJ

@7c6f434c
Copy link
Member

7c6f434c commented Jul 10, 2018 via email

@timokau
Copy link
Member Author

timokau commented Jul 11, 2018 via email

@7c6f434c
Copy link
Member

Well, Gitlab is better because you can have a NixOS test for ofborg-Gitlab integration! Of course, having a bot generate and upload summaries out of mailing list would probably work better than Github if only because scraping a mailing list enforces a proper model of operation.

I think most of PRs are need:review by default, the rest are either [WIP] or match some needs: tag. And we don't have a clear idea what to do with issues, that's true. And of course we cannot even try a lot of nice workflows because «oh and run the full testsuite» requires insane amount of buildpower…

@timokau
Copy link
Member Author

timokau commented Jul 11, 2018 via email

@7c6f434c
Copy link
Member

7c6f434c commented Jul 11, 2018 via email

@timokau
Copy link
Member Author

timokau commented Jul 11, 2018 via email

@timokau
Copy link
Member Author

timokau commented Jul 11, 2018

No, checking that a minor package update doesn't break any reverse dependencies.

Ah right. But that shouldn't stop us from improving our current workflow.

By the way in relevant sage related news: There is work upstream to make it possible to run tests in limited time. That would make it possible to test most of sage in a fraction of the time. I was thinking about completely splitting the tests from the main package anyways (while still making them a dependency). So then there could be sage.tests (which would be a dependency of the sage package) and sage.quicktests which would run maybe 10 minutes and could be used for reverse-dependency checks.

@7c6f434c
Copy link
Member

Good news for Sage tests, but Sage is still a non-negligible rebuild per se, and then it is not the only one.

As for workflow — some structural differences mean that many tradeoffs between using tooling and spending human attention become unaffodable to us, and handling Nixpkgs PRs en masse is a burn out risk when spending too much of human attention.

But of course, there are a lot of good ideas that do not require making extra decisions or ensuring that nobody forgets about a PR.

@timokau timokau force-pushed the sage-8.3 branch 2 times, most recently from 916d683 to daeb8f9 Compare August 3, 2018 13:27
@timokau
Copy link
Member Author

timokau commented Aug 3, 2018

8.3 was released 🎉

I've rebased and squashed the intermediate rc updates. The final build is still running but in the meantime:

@bjornfor @jgeerds @FRidh: Unfortunately there was no new ipython release. Is it okay to backport that patch in 86f058c? It has been accepted upstream.

Edit: Tests pass.

@timokau timokau changed the title [WIP] sage: 8.2 -> 8.3 sage: 8.2 -> 8.3 Aug 3, 2018
@FRidh
Copy link
Member

FRidh commented Aug 3, 2018

@timokau I think so. Note I don't maintain the Python 2 version of IPython.

@timokau
Copy link
Member Author

timokau commented Aug 4, 2018

I've added a patch to mark a known "random" failure (always happens on my laptop, never on my desktop). This is ready for merge.

@7c6f434c 7c6f434c merged commit b79dbfe into NixOS:master Aug 4, 2018
@timokau timokau deleted the sage-8.3 branch August 4, 2018 13:03
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.

None yet

4 participants