Skip to main content

Provides a way to assemble various Git repositories into one. It’s like submodules that don’t suck.

Use case: stitch together Wordpress with some themes and plugins before deploying.

Usage

First, you need to create your Castor repository. The following command will create an new Git repository containing an empty Castorfile and a pre-initialized .gitignore.

castor init my-proj

Then, you need to edit your Castorfile. It might look like

Note

post_freeze array is optional. It must be an array, each command will be executed on the target directory after executing castor freeze.

{
    "lodge": [
        {
            "target": "/",
            "version": "1.6.1.0",
            "repo": "https://github.com/PrestaShop/PrestaShop.git",
            "type": "git"
        },
        {
            "target": "/themes/my-prestashop-theme",
            "version": "e0e7c15789e6ff674cd75cb24981155441c3df09",
            "repo": "git@bitbucket.org:activkonnect/my-prestashop-theme.git",
            "type": "git",
            "post_freeze": [
                "composer update --no-dev"
            ]
        },
        {
            "target": "/.htaccess",
            "type": "file",
            "source": "files/htaccess"
        }
    ]
}

Your Castorfile being filled up, you can now apply it

castor apply

This will automatically create your repositories hierarchy, checkout submodules, etc. The root of this hierarchy will be the lodge directory.

If you want to execute post freeze commands on apply add the --exec-post-freeze argument like so :

castor apply --exec-post-freeze

Now you can freeze your project into a git-free, commitable and deployable tree of source code. This will go into the dam directory.

If you want to execute post freeze commands on apply add the --exec-post-freeze argument like so :

castor apply --exec-post-freeze
castor freeze

You can use the lodge as your working directory during development. If you make updates to the code, you can commit in the git repos. If you simply want to update upstream code, check out the new tag/commit you want to use. Then you can use castor freeze again, and it will update the Castorfile automatically with the latest Git HEADs, as well as the dam directory.

Metadata

Release files for castor 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for castor 0.2.3
File Size Uploaded Provenance
castor-0.2.3.tar.gz 7.4 kB Without provenance Details

Release files / castor-0.2.3.tar.gz

Download URL castor-0.2.3.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e337147f9406581008a186f3e692c72adcf50d223189798e81d146de7ba0a1d6
BLAKE2b-256 checksum
How to use checksums
7b9bc8f9bcaef016286c55c9eec5705c3fc91a602a85fc7325c5ba3951af577d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for castor 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page