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

Modernize project setup #187

Closed
wants to merge 6 commits into from
Closed

Modernize project setup #187

wants to merge 6 commits into from

Conversation

bbannier
Copy link
Contributor

This moves most project configuration into pyproject.toml to work better with more modern setups (I checked with rye where an env managed with rye sync is automatically discovered for the editor integrations I am using).

I added a couple commits in the end to include files previously excluded from pre-commit hooks in linting.

We previously used a mix of `setup.py` and `setup.cfg` which are not
well supported by more modern Python developer tools which instead
prefer `pyproject.toml`. This meant that developing this project
required manually setting up and managing virtualenvs.

With this patch we now move most of our configuration over into
`pyproject.toml` so especially dev environments can be managed with
tools like Hatch[^1] or Rye[^2]. Dev envs managed by these tools are
automaticallt discovered by many editors so there is potentially less
need to even think about virtualenvs.

Now `setup.py` contains the absolute minimum required settings. We still
need to keep dynamically generating the package version from the
Zeek-style `VERSION` file, and also need to add a tweak to make sure it
is distributed in wheels so the installation code reading it has access
to it.

Since settings in `setup.cfg` can conflict with `pyproject.toml` we
delete the file after either moving all setttings to `pyproject.toml` or
to tool specific files (flake8 still does not support `pyproject.toml`).

For now we keep `requirements.txt` (which updated versions) so we can
install dev dependencies, e.g., for RTD. Unfortunately dev dependencies
in `pyproject.toml` are still not standardized[^3].

[^1]: hatch.pypa.io
[^2]: https://rye-up.com/
[^3]: https://discuss.python.org/t/development-dependencies-in-pyproject-toml/26149
@bbannier bbannier self-assigned this Apr 11, 2024
@bbannier bbannier requested a review from ckreibich April 11, 2024 10:13
@bbannier bbannier marked this pull request as ready for review April 11, 2024 10:13
email = "info@zeek.org"

[project.scripts]
zkg = "zkg:main"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Turns out this breaks functionality of this script.

@bbannier bbannier marked this pull request as draft April 11, 2024 17:16
@bbannier bbannier closed this Apr 12, 2024
@bbannier bbannier deleted the topic/bbannier/modernize branch April 12, 2024 08:15
@bbannier
Copy link
Contributor Author

Superseded by #188.

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.

None yet

1 participant