ManderaGeneral / generalpackager

Tools to interface GitHub, PyPI, NPM and local modules / repos. Used for generating files to keep projects dry and synced. Tailored for ManderaGeneral for now.
https://pypi.org/project/generalpackager/
Apache License 2.0
0 stars 0 forks source link

Unify structure for dev deps for python and node #67

Closed Mandera closed 1 year ago

Mandera commented 1 year ago

Python's is located in workflow.py

    PIP_NECESSARY_PACKAGES = (
        "setuptools",
        "wheel",
        "twine",
    )

Node's is located in metadata.json

    "devDependencies": [
        "jest-environment-jsdom",
        "parcel"
    ],
Mandera commented 1 year ago

Ran into this because jsdom wasn't installed when I tried to run jest for genvector

Mandera commented 1 year ago

Neither of them is good. Their entry point to metadata should probably be in read_hook_post. And they should be defined in a proper meta-config file eventually. For now probably just hardcode it there.

Mandera commented 1 year ago
Mandera commented 1 year ago
Name | Save | Save short | package.json | --omit= | --only= -- | -- | -- | -- | -- | -- Production | --save-prod | -P | dependencies |   | prod / production Dev | --save-dev | -D | devDependencies | dev |   Optional | --save-optional | -O | optionalDependencies | optional |   Bundle | --save-bundle | -B | bundleDependencies |   |   Peer | --save-peer |   | peerDependencies | peer |  
Mandera commented 1 year ago

Moved necessities to packager deps https://github.com/ManderaGeneral/generalpackager/commit/903449e9194c6d5295b5dfb684b0969487e5feb5 was a success!

Name | Column 2 -- | -- setuptools | packager’s dep wheel | packager’s dep twine | packager’s dep jest-environment-jsdom | Dev dep for all node pkgs parcel | Dev dep for all node pkgs
Mandera commented 1 year ago

It doesn't make sense to unify the deps for different targets as they work differently and for a target such as django it might need to define both.

Alternative which I probably wont do

Remove ability of pip install name[option] because node doesn't have that. Then when defining deps you could write something like "python:generallibrary". If not defined it would default to target. This would scale better with additional targets

Mandera commented 1 year ago

This issue didn't go the way I thought but this is good!