-
Notifications
You must be signed in to change notification settings - Fork 492
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
add full and dev extras #1157
add full and dev extras #1157
Conversation
Thanks very much, generally I'm happy with this (although I don't much like toml, it doesn't seem to interfere too much with anything else). People may already have their flows built around In both instances I'll need to look into the |
I also want to check why constants imports anything extra? The version shouldn't really require moving to another file, all the constants should be static and importable without the rest of the framework. I'd sooner fix that than split the version off into a separate file. |
The |
Thanks for taking a look!
Support was added in pip 19, released Jan 2019 pypa/pip@3a77bd6 and included in python 3.7.3
Basically, it reads the
It's from forwarding these imports: volatility3/volatility3/framework/constants/__init__.py Lines 15 to 16 in 771ed10
which are used in places like
I can remove those imports if you want instead, just didn't originally since it would be a breaking change
[project]
dependencies = ["pefile>=2023.2.7"]
[project.optional-dependencies]
dev = ["jsonschema>=2.3.0", "..."]
full = ["yara-python>=3.8.0", "..."]
all = ["volatility3[dev,full]"] # we can reference other extras like so and then you can install any combination you want, like |
hey @ikelos, just checking in 😄 |
I think we're very happy with your changes and we'll likely get them merged, we're just talking about either bumping the minimum python version required or figuring out how to still keep it all working without pip. Definitely not forgotten though, sorry, I'm just a bit slower at getting through things these days... 5:S |
No worries! Since we're keeping $ python3.8 -m venv .venv
$ .venv/bin/python -m pip install setuptools==62.6.0
$ .venv/bin/python setup.py install
$ head -1 volatility3.egg-info/requires.txt
pefile>=2023.2.7 # <-- this came from the pyproject.toml file But bumping the python version sounds good to me as well |
This does two main things, split into separate commits. Main motivation for the PR is the first commit:
full
extra mapping to requirements.txt so users canpip install volatility3[full]
leechcorepyc
on macos since it's unsupported-r
lines since they are not PEP 508 compliantdev
extra mapping to requirements-dev.txt so devs canpip install -e .[dev]
Second commit migrates all static metadata to pyproject.toml (the modern replacement for setup.py). Two things to note:
version
,volatility3
won't be importable (due to build isolation) so I've moved the version constants to a separate filesetup.py
around just to strip to strip the-r
lines for the new extras. If you don't mind changing the dev workflow frompip3 install -r requirements-dev.txt
topip3 install -e .[dev]
, we could removesetup.py
entirely