scipp / copier_template

Copier template for Scipp projects
BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

Unpinned tox test environment uses the last release of the project itself. #159

Open MridulS opened 2 months ago

MridulS commented 2 months ago

https://github.com/scipp/copier_template/blob/c721391396a659e8d8f3ab2c76c5c03f71b44dd5/template/tox.ini.jinja#L15-L19

Here we are trying to fetch the latest release of the all the base requirements and the last release of package itself. Is the intent here to test the last release of the package with no pins, or the current main branch with no pins (or we should be doing both)?

The failures at https://github.com/scipp/ess-project?tab=readme-ov-file#ess are for packages which have no releases on pypi yet.

YooSunYoung commented 2 months ago

I think it is intended. The purpose of this test is to test the package in the environment of what users will have. And we supposed that users will install it from package index frameworks, not from the main branch.

And I think we said we'll add unpinned test on main branch if it's needed, so we can add a cron job testing the main branch with unpinned dependency that runs once a week maybe...?

MridulS commented 2 months ago

And we supposed that users will install it from package index frameworks, not from the main branch.

Maybe we can just test {{projectname}} then? Ideally all the deps in requirements/basetest.txt should be already included in the {{projectname}} pip install?

YooSunYoung commented 2 months ago

No, basetest.txt dependency is only for the test-tools, so we want to pin the versions. And we want to install unpinned version of the hard dependencies.

SimonHeybrock commented 2 months ago

Yes, this is intended, see also https://github.com/scipp/ess-project?tab=readme-ov-file#overview-1:

Our Nightly test setup ensures that downstream projects keep working with changed merged upstream. There are two different Nightly runs, one to check if unreleased upstream changes break an existing downstream release, and a second one to check if unreleased upstream changes break the unreleased version (main).