Skip to content

alleyinteractive/alley-scripts

Repository files navigation

Alley Scripts

A collection of scripts and utilities built by Alley Interactive for projects to speed up development.

Table of Contents

Packages

This monorepo contains the following packages:

Adding and Managing Packages

This project uses Turborepo with NPM to add and manage packages in this monorepo. To add a new package, you can add the package manually or run a command.

NOTE: If the workspace is to be created in a location other than the default packages directory, the path to the directory needs to be provided in the root package.json workspaces configuration.

Scaffold a new package

npx turbo gen workspace --type package

The command above will walk through some prompts and create a new package in the packages directory with a basic package.json and README.md file.

NOTE: The package.json file will be scaffolded with the private configuration set to true. When the package is ready to be published to the public registry, this configuration should be removed.

For more information on the Turborepo code generation, see the Turborepo Code Generation documentation.

Add a package manually

To add a package manually you can create a new directory with the same name as the package in the packages directory and add a package.json file with the following content:

{
  "name": "@alleyinteractive/package-name",
  "version": "0.0.0",
  "license": "GPL-2.0-or-later",
}

Versioning and Publishing Packages in this Monorepo

This project uses the Changesets CLI to manage versioning and publishing of packages in this monorepo. To release a new version of a package that you are working on, you can run the following command:

npx changeset

The command above will walk through some prompts and create a new changeset file in the .changeset directory. Commit this file to version control in your feature branch and open a pull request.

Once the pull request is approved, merge the branch into the main branch. The changeset Github actions will automatically create a new branch, e.g. changeset-release/main and pull request titled "Version Packages". Once you are ready to release the package merge the pull request. You may need to check with other developers releasing versions for other packages as the changeset release will add all changes to that pull request. Once the changeset-release/main branch is merged it will publish the new version of the package to the NPM registry.

You do not need to manually bump the version of the package in the package.json file. The changeset Github actions will handle this for you.

Changelog

Each package/workspace contains a changelog file that documents the changes for each version of the package. The changelog file is located in the root of the package directory and is named CHANGELOG.md.

Contributing

Feel free to dive in! Open an issue or submit PRs. Standard Readme follows the Contributor Covenant Code of Conduct.

Maintainers

This project is actively maintained by Alley Interactive. Like what you see? Come work with us.

Alley logo

License

The GNU General Public License (GPL) license. Please see License File for more information.