Skip to main content

Ambient package update tool for clean and swift maintenance

Project description

pypi Downloads

Ambient Package Update

This repository will help keep all Python packages maintained by Ambient Digital tidy and up-to-date.

This package will render all required configuration and installation files for your target package.

Typical use-cases:

  • A new Python or Django version was release
  • A Python or Django version was deprecated
  • You want to update the Sphinx documentation builder
  • You want to update the linter versions
  • You want to add the third-party dependencies

Versioning

This project follows the CalVer versioning pattern: YY.MM.[RELEASE]

Installation

  1. Ensure you have installed Python >=3.11 and the binary is in your system path
  2. Clone this package from GitHub
  3. Navigate into the project directory
  4. Execute scripts/setup_venv.ps1 on Windows or scripts/setup_venv_unix.sh on Unix/macOS

How to update a package

These steps will tell you how to update a package which was created by using this updater.

  • Navigate to the main directory of this package
  • Activate your virtualenv
  • Run python .\main.py render-templates [PACKAGE_NAME]
  • Open your target package in the IDE, validate the changes and increment the version accordingly
  • Release a new version of your target package

How to create a new package

Just follow these steps if you want to create a new package and maintain it using this updater.

  • Create a new repo at GitHub
  • Check out the new repository in the same directory this updater lives in (not inside the updater!)
  • Create a directory ".ambient-package-update" and create a file "metadata.py" inside.
from ambient_package_update.metadata.author import PackageAuthor
from ambient_package_update.metadata.constants import DEV_DEPENDENCIES
from ambient_package_update.metadata.package import PackageMetadata
from ambient_package_update.metadata.readme import ReadmeContent
from ambient_package_update.metadata.ruff_ignored_inspection import RuffIgnoredInspection

METADATA = PackageMetadata(
    package_name='my_package_name',
    authors=[
        PackageAuthor(
            name='Ambient Digital',
            email='hello@ambient.digital',
        ),
    ],
    development_status='5 - Production/Stable',
    readme_content=ReadmeContent(
        tagline='A fancy tagline for your new package',
        content="""A multiline string containing specific things you want to have in your package readme.
""",
    ),
    dependencies=[
        'my_dependency>=1.0',
    ],
    optional_dependencies={
        'dev': [
            *DEV_DEPENDENCIES,
        ],
        # you might add further extras here
    },
    ruff_ignore_list=[
        RuffIgnoredInspection(key='XYZ', comment="Reason why we need this exception"),
        
    ],
)
  • Finally, follow the steps of the section above (How to update a package).

Contribution

Publish to PyPi

  • Update documentation about new/changed functionality

  • Update the Changelog

  • Increment version in main __init__.py

  • Increment version of this package in dependencies in ambient_package_update/metadata/constants.py

  • Create pull request / merge to master

  • This project uses the flit package to publish to PyPI. Thus publishing should be as easy as running:

    flit publish
    

    To publish to TestPyPI use the following ensure that you have set up your .pypirc as shown here and use the following command:

    flit publish --repository testpypi
    

Changelog

Can be found at GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ambient-package-update-23.5.8.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

ambient_package_update-23.5.8-py2.py3-none-any.whl (6.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ambient-package-update-23.5.8.tar.gz.

File metadata

File hashes

Hashes for ambient-package-update-23.5.8.tar.gz
Algorithm Hash digest
SHA256 536b62075138a9be78aa65eb8ed2a82bfb5c5de213f1db73ee3a4d54cb8e28c4
MD5 a2a10620085f99f77e4d1868036f7a5a
BLAKE2b-256 b4a3967987eccef0d30e133a91f604e91cc0938e864a7e65f3781e3fe1f8a2c2

See more details on using hashes here.

File details

Details for the file ambient_package_update-23.5.8-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ambient_package_update-23.5.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c1ad43767c89cced1ec691dccee0559967fc5e9755e4e5170707570720792c20
MD5 c4f0e07d4656352504e085d72c15dee5
BLAKE2b-256 875bcadbd6ee59ff814d69dce37ce15d99c9828addc03843c83975a07f80536b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page