# Developing Packages

# Building from skeleton project

When building a new module, you can easily start by downloading a copy of our skeleton project (opens new window).

Or via composer:

composer create-project --repository=https://satis.appetiserdev.tech appetiser/skeleton my-module

When using composer you need to have authentication set up globally for you to download the project.

If you want to learn more about package development, this are some great resource to get started with:

# Publishing Packages

# Register your repository

Before we can publish our packages, we need to register our repository into our satis repository. First clone the satis project (opens new window), and then update the satis.json file and add your repository in repositories list.

{
    "name": "appetiser/satis",
    "homepage": "https://satis.appetiserdev.tech",
    "output-dir": "public",
    "repositories": [ 
        {
            "type": "vcs",
            "url": "https://gitlab.com/appetiser/backend-laravel-module-template"
        }
    ],
    "require-all": true,
    "require-dependencies": false,
    "require-dev-dependencies": false
} 

Then commit and push your changes.

# Releasing your package

Composer recommends semantic versioning (opens new window) when publishing packages, so we also recommend for you to adhere with this, so take some time reviewing what is semantic versioning (opens new window).

Now, let's get started.

First, make sure all you commits have been pushed to your remote origin.

Then, head over to your repositories project and go to deployments then releases.

Deploment and Release

As this is your first time to release, this page would be empty, click the New Release button on the top right of the page.

Then on the new release form, specify the tag version, which would be v1.0.0 as your first release. For package that would still be on pre release and not fully functional or would still have breaking changes, use v0.0.1 as your starting tag.

In semantic versioning (opens new window) standard, any package that are below version 1 are considered to have a breaking changes.

Once you have your tag set, Select the branch where you want to create this release.

Specify the title of the release, and a detailed release notes.

Then click Create Release.

new release

Once you have release your project, please wait for few minutes as our Satis repository only sync's every 15th minute, so take this into account as this might get you confused why its not released. We are still looking into improving this release process and we are happy for you contribution.

Thats it, don't forget to share your package to our amazing team. Happy coding.