Metadata-Version: 2.1
Name: distriploy
Version: 0.16
Summary: Release deployment utility
Home-page: https://github.com/exmakhina/distriploy
Author: Jérôme Carretero
Author-email: cJ-py-spam@zougloub.eu
License: MIT
Description: ##########
        Distriploy
        ##########
        
        This tool can assist you to perform deployment of release artifacts.
        
        
        Usage
        #####
        
        After its `installation`_, distriploy is typically called from your repo's
        root folder using:
        
        .. code:: sh
        
           distriploy
        
        or:
        
        .. code:: sh
        
           python -m distriploy
        
        The repo should have been configured prior to that, see `configuration`_.
        
        Run it with `--help` to get to know the options.
        
        Prior to running `distriploy`, you might want to create a custom tag. It will be used to name the release. E.g.:
        
        .. code:: sh
        
           git tag -s r$(date +%Y%m%d)
        
        
        Installation
        ############
        
        
        distriploy is available on pypi:
        
        .. code:: sh
        
           python -m pip install --user distriploy
        
        
        or you can grab a release or clone the repository and use it.
        
        
        
        Configuration
        #############
        
        An enabled repository has a `.distriploy.yml` file in its root folder.
        See `this repo's <.distriploy.yml>`_ for inspiration.
        
        The file is YAML, it contains an object with the following members:
        
        - `release`: release information object
        - `release.method`: release method. Supported values are:
        
          - `github`: the project has a github repo.
        
            Additional info may be provided if so:
        
            - `release.remote`: string, optional (defaults to `origin`)
        
              The local git repo remote corresponding to github.
        
            - `postrelease.add_mirror_urls`: bool (defaults to `false`)
        
              Whether to add to the release description a list of mirrors.
              Limited use because if github is down, the list is not
              accessible.
        
            - Environment variable `GITHUB_TOKEN`, must be populated by user,
              contains a token string created from
              https://github.com/settings/tokens
        
              Set it up with eg.:
        
              .. code:: sh
        
                 read GITHUB_TOKEN
                 export GITHUB_TOKEN
        
              Or add it to an environment file *not under revision control*.
        
        
        - `mirrors`: mirroring information object, containing members whose
          key is a mirror handle.
        
          Each entry contains:
        
          `mirrors.${mirror}.method`: mirroring upload method. Supported
          values (unsupported are ignored, with a warning) are (TODO):
        
          - `osf`: upload to https://osf.io
        
            Use requires installation with `osf` option, or subsequent
            installation of the `osfclient` dependency.
        
            Additional info may be provided if so:
        
            - `project`: string, OSF project key
        
            - `folder`: string, OSF file folder
        
            - `name`: string, optional (defaults to release artifact name)
        
              Useful if using OSF's revision system.
        
            - Environment variables `OSF_USERNAME` and
              `OSF_PASSWORD`, must be populated by user,
              they come from uid & pass in https://academictorrents.com/about.php#apikeys
        
              Set it up with eg.:
        
              .. code:: sh
        
                 read OSF_USERNAME OSF_PASSWORD
                 export OSF_USERNAME OSF_PASSWORD
        
              Or add it to an environment file *not under revision control*.
        
        
          - `rsync`: upload with rsync
        
            Additional info may be provided if so:
        
            - `remote`: string, rsync destination
            - `public`: string, public URI prefix, accessible once upload is completed
        
          - `academictorrents`: create torrent file, and upload to https://academictorrents.com
        
            The torrent file will be generated in cwd, named like the release
            artifact and added`.torrent` extension.
        
        
            Additional info may be provided if so:
        
            - `params`: object, academictorrents upload params, to be POST'ed
        
            - Environment variables `ACADEMICTORRENTS_USERNAME` and
              `ACADEMICTORRENTS_PASSWORD`, must be populated by user,
              they come from uid & pass in https://academictorrents.com/about.php#apikeys
        
              Set it up with eg.:
        
              .. code:: sh
        
                 read ACADEMICTORRENTS_USERNAME ACADEMICTORRENTS_PASSWORD
                 export ACADEMICTORRENTS_USERNAME ACADEMICTORRENTS_PASSWORD
        
              Or add it to an environment file *not under revision control*.
        
        
        TODO
        ####
        
        - get some use and feedback
        
        
        
        License
        #######
        
        `MIT <LICENSE>`_.
        
        
        Releasing
        #########
        
        .. code:: sh
        
           read version # eg. 0.14
           sed -i -e 's/^version = .*/version = "'${version}'"/g' setup.py
           git add setup.py
           git commit -m "preparation for v${version}"
           git tag --annotate --message "" v${version}
           git push; git push --tags
           rm -rf dist; python setup.py sdist && twine upload dist/* -r pypi
           python -m distriploy
        
        
Keywords: releng,deployment,distribution
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Provides-Extra: osf
