diff --git a/AGENTS.md b/AGENTS.md index 81fc1b3..3d3c39f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,7 +17,7 @@ | Build | `setuptools` / `setup.py`; package `contentstack_management` | | HTTP | `requests`, `requests-toolbelt`, `urllib3` | | Tests | `pytest` — `tests/integration` (live e2e / sanity, dynamic stack), `tests/unit`, `tests/mock`, `tests/api` (legacy, superseded by `tests/integration`) | -| Lint / coverage | `pylint`, `coverage` (see `requirements.txt`) | +| Lint / coverage | `pylint`, `coverage` (see `requirements-dev.txt`) | | Secrets / hooks | Talisman, Snyk (see `README.md` development setup) | ## Source layout diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f75064..9539610 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # CHANGELOG ## Content Management SDK For Python +--- +## v1.11.2 + +#### Date: 10 August 2026 + +- Moved `pylint` from `requirements.txt` to `requirements-dev.txt` to resolve Snyk GPL-2.0 license flag (DX-8256). `pylint` is a static analysis tool used only during development and CI; it is not distributed as part of the production package. + --- ## v1.11.1 diff --git a/contentstack_management/__init__.py b/contentstack_management/__init__.py index 4e9a763..e038906 100644 --- a/contentstack_management/__init__.py +++ b/contentstack_management/__init__.py @@ -102,7 +102,7 @@ def get_contentstack_endpoint(region='us', service='', omit_https=False): __author__ = 'dev-ex' __status__ = 'debug' __region__ = 'na' -__version__ = '1.11.1' +__version__ = '1.11.2' __host__ = 'api.contentstack.io' __protocol__ = 'https://' __api_version__ = 'v3' diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..8188ec2 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,4 @@ +# Development-only dependencies — not shipped in the production package. +# Keep linting/tools (e.g. pylint) here so production scans can exclude them. +-r requirements.txt +pylint>=2.0.0 diff --git a/requirements.txt b/requirements.txt index 03f4a7f..e9b1a36 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,6 @@ python-dotenv>=1.2.2 setuptools>=83.0.0 requests>=2.33.0,<3.0.0 urllib3>=2.7.0,<3.0.0 -pylint>=2.0.0 requests-toolbelt>=1.0.0,<2.0.0 pyotp==2.9.0 packaging>=24.0 diff --git a/setup.py b/setup.py index 1061207..53a99b3 100644 --- a/setup.py +++ b/setup.py @@ -72,7 +72,7 @@ def get_author_email(package): "urllib3 >= 2.7.0,<3.0.0", ], extras_require={ - "dev": ["pytest>=7.0", "twine>=4.0.2", "packaging>=24.0", "dotenv>=0.0.5"], + "dev": ["pytest>=7.0", "twine>=4.0.2", "packaging>=24.0", "dotenv>=0.0.5", "pylint>=2.0.0"], }, python_requires=">=3.9", ) diff --git a/skills/dev-workflow/SKILL.md b/skills/dev-workflow/SKILL.md index 0762bcd..47c3355 100644 --- a/skills/dev-workflow/SKILL.md +++ b/skills/dev-workflow/SKILL.md @@ -19,7 +19,7 @@ description: Use for install, pytest suites, versioning, pylint, hooks, and PR b ### Before a PR -1. **Install** — `pip install -e ".[dev]"` or install **`requirements.txt`** plus **pytest** / **pytest-cov** as needed. +1. **Install** — `pip install -e ".[dev]"` then `pip install -r requirements-dev.txt` for linting tools. 2. **`pytest tests/unit/`** — required baseline (matches CI **`coverage run -m pytest tests/unit/`**). 3. **API tests** — `pytest tests/api/` when your change affects live CMA behavior; configure **`.env`** per **`tests/cred.py`**. Never commit tokens. 4. **Mock tests** — `pytest tests/mock/` when extending mocked HTTP or fixtures. @@ -30,7 +30,7 @@ description: Use for install, pytest suites, versioning, pylint, hooks, and PR b ### Tooling -- **pylint** is listed in **`requirements.txt`**; follow existing style in touched files. +- **pylint** is listed in **`requirements-dev.txt`**; follow existing style in touched files. - **Husky / Talisman / Snyk** — see **README.md** for local hook setup. ### Pull requests