Name | drupy JSON |
Version |
0.8.3
JSON |
| download |
home_page | None |
Summary | Python based deployment tool for Drupal 7 |
upload_time | 2024-08-16 12:46:45 |
maintainer | None |
docs_url | None |
author | None |
requires_python | None |
license | None |
keywords |
drupal
drupy
build
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# drupy
A multisite capable Drupal site-builder based on JSON-recipes.
## Features
- Download and extract packages, prepare a Drupal tree and run "drush
site-install" all from the same set of configuration files.
- Package lists and site-configurations are pure JSON (ie. easy
machine-generateable).
- configuration files can "include" other json-files (even remote
files).
- Built-in support for multisite installations (optimized for sharing
code in a manageable way).
- Install files from: git repositores, tarballs, local directories,
copy files, patches
- Fast: if you change only one project (ie. add a patch) only this
project is rebuilt.
- Use hashes to check the integrity of downloaded files.
## Requirements
- Python3
- git
- drush (for running site-install)
- rsync
- A symlink capable file-system
## FAQ
- **Why not simply use drush make?** For our multi-site setup we'd
like a directory structure that looks something like:
```
projects/ # packages
module1-7.x-1.0/ # code of module1
module1-7.x-2.1/ # another version of module1
somesite/ # code of the custom somesite projects
theproject/ # another custom project with a install_profile
htdocs/ # drupal-root
profiles/
theproject/ -> ../../projects/theproject
minimal/
standard/
testing/
sites/
somesite/
modules/ # symlinks to projects in the projects sub-folder
contrib/ # only one copy of a module per version.
module1 -> ../../../../../projects/module1-7.x-1.0
…
themes/
contrib/
theme1 -> ../../../../../projects/theme1-7.x-1.0
…
othersite/
modules/
contrib/ # allow different versions of a module per site
module1 -> ../../../../../projects/module1-7.x-2.0
```
Directory layouts like this seems rather cumbersome with drush make
which seems to be a bit biased towards a one-drupal-tree-per-site
approach of hosting.
- **Why not use sites/all/ for code-sharing?** sites/all/ doesn't
allow us to update modules site by site. If an module has an
update-hook (ie. brings down your site until drush updb is run) you
have to update the module-code. Then you need to run drush updb in
all sites to bring them online again. So the mean down-time for a
site is: n/2. With lots of sites this can take quite some time.
- **Why care for code sharing at all?** Sharing the code for modules
means that our opcode cache needs to hold only one copy of a file
instead of one per site.
Raw data
{
"_id": null,
"home_page": null,
"name": "drupy",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "drupal, drupy, build",
"author": null,
"author_email": "Roman Zimmermann <torotil@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/b4/c4/caf9875100668203b140a050316547bf81e930fe10817d59a5300c5fd599/drupy-0.8.3.tar.gz",
"platform": null,
"description": "# drupy\n\nA multisite capable Drupal site-builder based on JSON-recipes.\n\n## Features\n\n- Download and extract packages, prepare a Drupal tree and run \"drush\n site-install\" all from the same set of configuration files.\n- Package lists and site-configurations are pure JSON (ie. easy\n machine-generateable).\n- configuration files can \"include\" other json-files (even remote\n files).\n- Built-in support for multisite installations (optimized for sharing\n code in a manageable way).\n- Install files from: git repositores, tarballs, local directories,\n copy files, patches\n- Fast: if you change only one project (ie. add a patch) only this\n project is rebuilt.\n- Use hashes to check the integrity of downloaded files.\n\n## Requirements\n\n- Python3\n- git\n- drush (for running site-install)\n- rsync\n- A symlink capable file-system\n\n## FAQ\n\n- **Why not simply use drush make?** For our multi-site setup we'd\n like a directory structure that looks something like:\n```\nprojects/ # packages\n module1-7.x-1.0/ # code of module1\n module1-7.x-2.1/ # another version of module1\n somesite/ # code of the custom somesite projects\n theproject/ # another custom project with a install_profile\nhtdocs/ # drupal-root\n profiles/\n theproject/ -> ../../projects/theproject\n minimal/\n standard/\n testing/\n\n sites/\n somesite/\n modules/ # symlinks to projects in the projects sub-folder\n contrib/ # only one copy of a module per version.\n module1 -> ../../../../../projects/module1-7.x-1.0\n \u2026\n\n themes/\n contrib/\n theme1 -> ../../../../../projects/theme1-7.x-1.0\n \u2026\n\n othersite/\n modules/\n contrib/ # allow different versions of a module per site\n module1 -> ../../../../../projects/module1-7.x-2.0\n```\n Directory layouts like this seems rather cumbersome with drush make\n which seems to be a bit biased towards a one-drupal-tree-per-site\n approach of hosting.\n\n- **Why not use sites/all/ for code-sharing?** sites/all/ doesn't\n allow us to update modules site by site. If an module has an\n update-hook (ie. brings down your site until drush updb is run) you\n have to update the module-code. Then you need to run drush updb in\n all sites to bring them online again. So the mean down-time for a\n site is: n/2. With lots of sites this can take quite some time.\n\n- **Why care for code sharing at all?** Sharing the code for modules\n means that our opcode cache needs to hold only one copy of a file\n instead of one per site.\n",
"bugtrack_url": null,
"license": null,
"summary": "Python based deployment tool for Drupal 7",
"version": "0.8.3",
"project_urls": {
"Homepage": "https://github.com/moreonion/drupy"
},
"split_keywords": [
"drupal",
" drupy",
" build"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "41d9c3e4469ff5d55265631faa252d83e22b4947a2331ef5130b9d2116d70dfd",
"md5": "714fb162a7690b96784c3e8fea80785d",
"sha256": "68d3b8bcb732d0252dbc7cf10d1318568db76d274235ceb3c3297b0c23c8b4cf"
},
"downloads": -1,
"filename": "drupy-0.8.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "714fb162a7690b96784c3e8fea80785d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 29046,
"upload_time": "2024-08-16T12:46:43",
"upload_time_iso_8601": "2024-08-16T12:46:43.767898Z",
"url": "https://files.pythonhosted.org/packages/41/d9/c3e4469ff5d55265631faa252d83e22b4947a2331ef5130b9d2116d70dfd/drupy-0.8.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b4c4caf9875100668203b140a050316547bf81e930fe10817d59a5300c5fd599",
"md5": "044e4b4c904d71e4da2e55dded43d4a7",
"sha256": "a4810df8f3cacad8107b78bf7191451c9921100c395c7ea4e8c0bc1f570616f7"
},
"downloads": -1,
"filename": "drupy-0.8.3.tar.gz",
"has_sig": false,
"md5_digest": "044e4b4c904d71e4da2e55dded43d4a7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 43770,
"upload_time": "2024-08-16T12:46:45",
"upload_time_iso_8601": "2024-08-16T12:46:45.769923Z",
"url": "https://files.pythonhosted.org/packages/b4/c4/caf9875100668203b140a050316547bf81e930fe10817d59a5300c5fd599/drupy-0.8.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-16 12:46:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "moreonion",
"github_project": "drupy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "drupy"
}