https://github.com/renddslow/alseta
Manage dependency versions across repos (mono or otherwise).
https://github.com/renddslow/alseta
Last synced: 2 months ago
JSON representation
Manage dependency versions across repos (mono or otherwise).
- Host: GitHub
- URL: https://github.com/renddslow/alseta
- Owner: Renddslow
- Created: 2020-03-26T16:41:42.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T17:26:36.000Z (over 2 years ago)
- Last Synced: 2024-03-24T19:20:36.455Z (about 1 year ago)
- Language: TypeScript
- Homepage: https://npmjs.com/package/alseta
- Size: 771 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# alseta
> Manage dependency versions across repos (mono or otherwise).
## Install
```
$ yarn add alseta
```Or run it with npx
```
$ npx alseta [command]
```## Usage
```
Usage
$ alseta [options]Available Commands
update Update dependencies in a package according to an alseta configuration.
verify Verify that all dependencies are in compliance with an alseta configuration.For more info, run any command with the `--help` flag
$ alseta update --help
$ alseta verify --helpOptions
-w, --workspace When set alseta will look for a yarn workspace setup (default false)
-v, --version Displays current version
-h, --help Displays this message
```### update
```
Description
Update dependencies in a package according to an alseta configuration.Usage
$ alseta update [options]Options
-i, --install Run `yarn install` after all dependencies have been updated (default false)
-s, --skip-overage When alseta encounters a dependency that is on a higher version than the config calls for, skip (default false)
-w, --workspace When set alseta will look for a yarn workspace setup (default false)
-h, --help Displays this message
```### verify
```
Description
Verify that all dependencies are in compliance with an alseta configuration.Usage
$ alseta verify [options]Options
--programmatic By default alseta will print out a human readable error message, this will print the errors as a JSON array (default false)
--warn By default alseta will error if it encounters a mismatch, warn will log to stdout and complete with exit(0) (default false)
-w, --workspace When set alseta will look for a yarn workspace setup (default false)
-h, --help Displays this message
```### Config
Alseta relies on a config file to determine which version of a package to enforce. The config file may be defined as a json file at the root of your file: `alseta.config.json`, in the package.json under the key `alseta`, or as a URL which will resolve a remote Alseta config in JSON format.
The config must have a top-level object where each key is a `pkg.name` and each value is the corresponding `pkg.version`.
Example:
```json
{
"dot-prop": "5.1.1",
"klona": "1.1.1"
}
```## Continuous Integration (CI)
Alseta was designed to be used in a CI environment, but there are several ways it can be used. The most "end to end" option is to check if `yarn.lock` is in the committed files, then run `alseta verify --warn`. If the verify step has a message then verification failed, at which point `alseta update` can be run to update. This leverages the fact that your yarn.lock is different, which is often the trigger for busting a CI cache. If however your cache works differently, the install step may be necessary.
If you're concerned about dependency updates causing downstream issues, ~~then you should probbly have unit and integration tests~~ you can just add `alseta verify` as a test script. If it fails, your build will fail which allows a reviewer and the developer to fix the problem manually.