{"id":24973280,"url":"https://github.com/bluedynamics/bda.recipe.deployment","last_synced_at":"2025-09-04T18:25:03.493Z","repository":{"id":2082006,"uuid":"3021471","full_name":"bluedynamics/bda.recipe.deployment","owner":"bluedynamics","description":"BDA Deployment Process Buildout Recipe - WORK IN PROGRESS","archived":false,"fork":false,"pushed_at":"2014-07-18T14:46:45.000Z","size":497,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-03T14:56:41.687Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bluedynamics.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-12-20T18:11:39.000Z","updated_at":"2017-07-09T01:12:03.000Z","dependencies_parsed_at":"2022-08-26T13:50:28.785Z","dependency_job_id":null,"html_url":"https://github.com/bluedynamics/bda.recipe.deployment","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/bluedynamics/bda.recipe.deployment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluedynamics%2Fbda.recipe.deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluedynamics%2Fbda.recipe.deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluedynamics%2Fbda.recipe.deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluedynamics%2Fbda.recipe.deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bluedynamics","download_url":"https://codeload.github.com/bluedynamics/bda.recipe.deployment/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluedynamics%2Fbda.recipe.deployment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273651754,"owners_count":25144101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-03T18:27:01.777Z","updated_at":"2025-09-04T18:25:03.433Z","avatar_url":"https://github.com/bluedynamics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"============================================\nBuildout recipe managing project deployments\n============================================\n\n\nOverview\n========\n\n``bda.recipe.deployment`` offers a deployment cycle and helper scripts for\nbuildout based projects.\n\n\nMotivation\n==========\n\nWhile in small projects pinning checkout revisions or package versions in order\nto deploy reconstructable setups works fine, the same strategy runs out of\nit's possibilities as soon as it comes to deployment of projects where\nsteps needed to publish a new feature not always follow a consistent and\nrepeating cycle.\n\nConsider following example. A customer comes up with two feature requests. The\ncustomer always communicates with the project manager, from customer point of\nview the cycle is clear. Each feature must be tested and after approving the\nrollout could be made. Now the developer imlements feature one, and while the\nfirst feature waits for testing and approval, he wants to implement second one\nwithout influence to the approval cycle.\n\nThe deployment cycle consists of three possible installations, further called\nenvironments:\n\n**Development**\n    The development environment is used to develop features on developers local\n    maschine.\n\n**Release Candidate**\n    The environment on the testing maschine accessible for customers testing.\n\n**Live**\n    The tested and stable live system.\n\n\nProcess\n-------\n\nOverall process:\n\n#. Developer uses ``dev.cfg``. If changes were done\n   ``bin/deploy candidate MODULENAME NEWVERSION`` is called. Modules RC-branch\n   is created/synced and the sources section in file for rc environment is\n   modified and committed.\n\n#. Release Manager uses ``rc.cfg`` on its testing checkout. After svn/git\n   update and buildout (re-)run the setup contains all release candidates\n   branches. Software can be tested. In a second cycle Release Manager can\n   merge changes from development branch into rc branch.\n\n#. Release Manager decides to release a package after testing for live-usage.\n   In rc-environment ``bin/deploy release MODULENAME`` is called and the egg is\n   uploaded to the configured eggserver or saved local. The live-versions\n   section in file for live-environment is modifed and committed.\n\n#. Live-System-Administrator uses ``live.cfg`` on the live-deployment maschine.\n   After git/svn up and buildout (re-)run the most recent releases are\n   available.\n\nOptional (if configured) the RC steps 2 and 3  can be omitted and a release may\nhappen from dev direct to live.\n\nWhile Developer and Release Candidate needs the add-on ``mr.developer``, Live\ndoes not it.\n\n\nBuildout Structure\n------------------\n\nProposed buildout structure::\n\n    dev.cfg (manual)\n    rc.cfg (manual)\n    live.cfg (manual)\n    etc/base.cfg (manual)\n    etc/deployment.cfg (manual)\n    etc/sources-dev.cfg (manual)\n    etc/sources-rc.cfg (generated)\n    etc/versions-rc.cfg (generated)\n    etc/versions-live.cfg (generated)\n    cfg/versions-global.cfg (manual, optional)\n\n**dev.cfg**\n    Contains parts for local development, includes developer tools if\n    necessary. Included parts:\n\n        - ``base.cfg``\n        - ``versions-global.cfg``\n        - ``sources-dev.cfg``\n        - ``deployment.cfg``\n\n**rc.cfg**\n    Contains parts for local on a test-server. Included parts:\n\n        - ``base.cfg``\n        - ``versions-global.cfg``\n        - ``versions-rc.cfg``\n        - ``sources-rc.cfg``\n        - ``deployment.cfg``\n\n**live.cfg**\n    Contains parts for deployment on a live-server. Included parts:\n\n        - ``base.cfg``\n        - ``versions-global.cfg``\n        - ``versions-live.cfg``\n\n**base.cfg**\n    contains all common sections and settingsof the buildout needed by all\n    three types of environment.\n\n**deployment.cfg**\n    Contains deployment specific sections and settings, such as parameters for\n    deployment and list of managed packages and which dist-server to use.\n\n**global-versions.cfg**\n    Contains the common version section. In smaller projects this can be put in\n    base.cfg\n\n**sources-dev.cfg**\n    Contains the sources-section for all developer controlled sources.\n\n**sources-rc.cfg**\n    Contains the sources for Release-Candidate setup. This file is generated by\n    scripts. It points to the automatically created branches.\n\n**versions-rc.cfg**\n    Contains the versions of developer controlled sources used in\n    rc-deployment. This are the packages which do not need a RC step.\n    This file is generated by scripts.\n\n**versions-live.cfg**\n    Contains the versions of developer controlled sources used in\n    live-deployment. This file is generated by scripts.\n\n\nCommands\n--------\n\nIn buildouts bin directory there are two main commands which itself have a\nbunch of sub commands, the ``deploy`` and the ``bda_deployment_helper``. Latter\nis rarely used, i.e. you may need it to fix things. So the main tool for the\ndaily usage is ``deploy``.\n\ndeploy\n~~~~~~\n\nMain command for all daily tasks.\n\nSubcommands are context sensitive. In dev environment there are other\ncommands available than in RC enviroment.\n\nSo in ``dev`` environment this are:\n\n**repopasswd**\n    sets the username/ password for the pypi server\n\n**info**\n    prints info about managed packages.\n\n**version**\n    prints version of a package.\n\n**candidate**\n    prepare a release candidate for a package, this includes creation of a\n    branch.\n\n**release**\n    make a release of a package, this includes tagging and upload to the\n    index (or local file release) and setting the version in\n    ``versions-rc.cfg`` and ``versions-live.cfg``.\n\nIn ``rc`` environment the commands are:\n\n**repopasswd**\n     see above.\n\n**info**\n     see above.\n\n**version**\n     see above.\n\n**release**\n    make a release of a package, this includes tagging and upload to the\n    index (or local file release) and setting the version in\n    ``versions-live.cfg``.\n\n**merge**\n    merge current trunk/master branch of a package into the rc branch.\n\nAll commands and subcommands have a help to find their paramaters.\n\n\nSource Code\n===========\n\nThe sources are in a GIT DVCS with its main branches at\n`github \u003chttp://github.com/bluedynamics/bda.recipe.deployment\u003e`_.\n\nWe'd be happy to see many forks and pull-requests to make it even better.\n\n\nContributors\n============\n\n- Jens W. Klein \u003cjk [at] kleinundpartner [dot] at\u003e\n\n- Robert Niederrreiter \u003crnix [at] squarewave [dot] at\u003e\n\n- Daniel Widerin \u003cdaniel@widerin.net\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluedynamics%2Fbda.recipe.deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluedynamics%2Fbda.recipe.deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluedynamics%2Fbda.recipe.deployment/lists"}