Skip to content

Conversation

@boyanpenkov
Copy link
Contributor

Hello,

Throughout, I've been using tox to run the tests; however, since conda runs my python envs, this only yields test coverage on the one python env that tox can find -- namely, 3.13 for the last little bit here.

This PR adds tox-conda to the tox section of pyproject.toml, and I see all test pass in all five envs that are created. Not sure how it plays without conda, however, but wanted to put this out there.

@boyanpenkov
Copy link
Contributor Author

OK, CI is missing setuptools of all things somehow here...

@boyanpenkov
Copy link
Contributor Author

OK, I'm lost here, on how to get the CI runner to see setuptools... Suffice it to say, of course this works on my local install. Anybody have any experience with this?

@boyanpenkov
Copy link
Contributor Author

boyanpenkov commented Aug 2, 2025

OK, this cleans up the setuptools CI issue, and was was -- predictably, in the fresh light of dawn -- the better way of doing this. Would be glad for a review; this does make things work for the conda crowd, but not clear how it affects non-conda users....

@boyanpenkov
Copy link
Contributor Author

OK, motivated by being annoyed, I understood the issue. Normality versions greater than 3.0.0 require explicit local installs of pyicu (https://pypi.org/project/normality/) which "involves more than just a pip call" (https://pypi.org/project/pyicu/) and changes all sorts of libicu versions on the CI machines and my three machines (which are all Debian Trixie at the moment).

Solution here is to limit ourselves to normality < 3.0.0, (much like bibtexparser < 2.0.0) which does show all tests passing on my machines and should work cleanly with CI.

Should probably lock that down -- if we want to use tox-conda and all that, still an open question.

@boyanpenkov
Copy link
Contributor Author

CI pipeline, five green checks -- yay.

@boyanpenkov
Copy link
Contributor Author

Just an afterthought on timing here, 3.9 goes EOL and 3.14 releases in October...

@perrette
Copy link
Owner

perrette commented Oct 6, 2025

Hi @boyanpenkov , I appreciate your work on this, but I personally don't use conda and am not inclined to make it an essential part of the testing workflow. I would not know how to include your work without adding these extra conda dependencies. BTW I just removed the dependency on normality, whose dependency pyicu in turn would cause problems. I'm mentioning it because I see you constrained the version of normality, probably because of the pyicu issue.

@boyanpenkov
Copy link
Contributor Author

Hey @perrette OK, not a problem -- I'm not married to conda either (and folks keep pushing uvand poetry on me), but it does seem to stably work, and does solve a set of problems with regards to the underlying packages constantly changing. For example, it look me less than a minute to add 3.14, which drops tomorrow.

I can think of a few things:

-- if you tell me what your workflow is for running 5 interpreters and keeping them all updated, no conda, I can try to reproduce it.

-- I can merge this (with conda) into my local branch, commit to maintaining it (largely for myself at this point) and run with it for the next few months, to see how things go. For the foreseeable future, I would prefer to keep conda (over stepping up to some other uv poetry solution, or stepping down to re-running the deps manually).

Let me know -- ultimately, its your project; I'm just happy it exists and I can slowly start molding it to keep my giant dump of PDFs organized.

PS -- I merged in the normality change, ran test locally and on CR and seems super. Seems like this did catch something already.

@boyanpenkov
Copy link
Contributor Author

Can confirm adding 3.14 to the tox deps ran OK on my machine as well, with all tests passing with the new interpreter.

@perrette
Copy link
Owner

perrette commented Oct 8, 2025

Do I understand correctly that normality was what was causing the issue?
I usually only run tox on my local ubuntu machine and it handles everything
actually i mostly
do tox -e py312 (or whatever my local python is) for a quick test, then I push and let github do the full multiplatform testing
EDIT: I only check whatever version i have locally and leave the rest to the github workflow. Only in case of failure there would I bother to run a complete local test. In that case yes I'd have conda install the faulty version, and then make it available via my .bashrc or something (I can't remember now but I did that in the past) so that tox can find it.

@boyanpenkov
Copy link
Contributor Author

boyanpenkov commented Oct 9, 2025

re: normality -- yes, your update from moving away from the normality dep explicitly did address that issue. Thanks!

re: workflow -- OK, I get it, you just check the one python version that is your #!/usr/bin/env python and then see if the CI breaks it after the push. I have conda mediating all these installs locally, and run all the checks locally before I submit a PR.

Let me know -- it's your lead here; I can merge this for myself and be responsible for dealing with it for me, and if the situation changes, the code can still be here in my branch.

@boyanpenkov
Copy link
Contributor Author

Also, I read the CI fail logs here -- they are because github does not yet have 3.14 up, so their tox CI runner can't find it.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants