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
build and develop using Nix package manager #1307
Conversation
see Ulauncher/Ulauncher#1307 Signed-off-by: Krzysztof Nazarewski <gpg@kdn.im>
I'm quite a lot of dependencies can be removed compared to v5, but I'm not sure which, could you help me with it? also seems like I'm not getting an app indicator icon when doing |
regarding #1306 (comment) :
Actually it would be a good idea to create a CI pipeline to update It doesn't stop us from providing OOTB build inside the repo as Nix itself is fully source-based:
We'll see how I like the Ulauncher itself, but I might be able to maintain this in-repo Nix piece. |
Thanks again for your work. I think I will try to move the deb build to a separate repo in the weekend, and we can push this PR there as well, but in the meanwhile feel free to keep this PR up. If you want an initial working draft with everything in one place I think this makes sense as a first step (part of it should go in here after all). A lot of the deps has indeed changed, so you can remove these:
And these optional deps have been added:
|
9e621d6
to
5efc6b3
Compare
I see you made a lot of changes to the program logic as well. The preferred way to get these merged is to make individual PRs for each isolated change, justifying why they are needed (if they are general improvements, which some of them seem to be). Alternatively if you comment on that here I can cherry-pick the changes manually, but then you don't get the official credit. For Nix-specific changes that change the behavior in ways they weren't built for originally, we should probably discuss how to get them merged. For example by providing options to the setup script so it can be enabled on Nix, but not other distros. Also, some of the code you have changed here is subject to future refactoring, I have considered replacing the build system because the way we do it now is deprecated and throws lots of warnings. The official pythonic way seems to be to move the spec from setup.cfg to pyproject.toml and I have also seen projects without any pyproject.toml or setup.cfg/py, using meson instead. Let me know if you have recommendations that work well with Nix (although I am moving forward with pyproject.toml for an upcoming PR). |
Yeah, I am making some general improvements that I might create separate PRs for, wanted to experiment first and see if those work at all and how much effort is required. I do not have any tests (i just built everything and run to see it work) or discussed those yet, just made sure to just augment without breaking original behaviours. Nix build doesn't strictly require any changes done, it could work around most stuff encountered in the wild. This is the first time I package anything Python the raw nixpkgs way (main repo), only used poetry2nix so far. I contain all Nix-specific patches/replacements that don't make sense upstream within build configs. About recommendations:
I can expand on the topics or split out changes into separate PRs to merge quickly as-is on Monday. |
I pushed and merged three PRs today which relate to the build system and/or our communication (but only one small conflict with what you've been working on). I'm not planning to do more work that can conflict with your work now, unless you ask me to. |
662b993
to
30a10ee
Compare
9a6bdf2
to
744d004
Compare
@friday Would you be up form merging this PR without Today I have:
|
bb73413
to
f239d49
Compare
- adds explicit ULAUNCHER_DATA_DIR to solve Ulauncher#1320 - fix No module named 'gi' in extensions, related to Ulauncher#1306
- primarily to point IDEs (at least Jetbrains family) to it - this is some kind of env, but most likely not a `virtualenv` - to save time it embeds a full build of the package into env, IDEs should handle it easily by prepending PWD to PYTHONPATH,
I have dropped #1319 code from this PR and made it ready to be merged. There are 3 remaining changes, but I don't think they warrant creating separate PRs:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great 👍 Thank you for committing to all this work 🍻
Also nice with the test script improvement (--auto-servernum) I didn't know about that one.
As mention I was planning to move the packaging to a separate repo in the future as this was on a long checklist requested by a Debian packager, and I think it also would be nice to separate the app release workflow from the build, so if the build crashes you can fix it without having to make a new release or faking one.
This PR provides a Nix build for v6+ based off nixpkgs'
ulauncher
buildsumming up it allows you to:
v6
branch externally in your own Nix configurations (be it NixOS or just a Nix package manager),virtualenv
),