drupy


Namedrupy JSON
Version 0.8.3 PyPI version JSON
download
home_pageNone
SummaryPython based deployment tool for Drupal 7
upload_time2024-08-16 12:46:45
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
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"
}
        
Elapsed time: 3.30914s