@atomist/sdm
Software Delivery Machine - This is the home of the Software Delivery Machine (SDM) framework and related projects.
The SDM framework enables you to control your delivery process in code. Think of it as an API for your software delivery. See the Atomist SDM documentation for more information on the concept of a software delivery machine and how to create and develop an SDM.
Migrating to SDM 2.0
SDM version 2.0 aims to make it easier to use the SDM framework. We have consolidated the most useful NPM packages under @atomist/sdm to simplify dependency management. Rather than separately installing @atomist/automation-client, @atomist/sdm-core, and various @atomist/sdm-pack-*, you now just install @atomist/sdm. @atomist/sdm-local is deprecated.
To update to the new single package in your SDM, follow these steps:
-
Remove Atomist SDM and automation-client dependencies
$ npm uninstall @atomist/automation-client @atomist/sdm @atomist/sdm-core @atomist/sdm-local
-
Remove any extension SDM packs
$ npm uninstall @atomist/sdm-pack-ABC @atomist/sdm-pack-DEF @atomist/sdm-pack-GHI
-
Reinstall Atomist SDM
$ npm install @atomist/sdm
-
The consolidation of packages introduces a breaking change: you must update your import statements. Specifically:
- Change
import … "@atomist/automation-client"
toimport … "@atomist/sdm/lib/client"
- Change
import … "@atomist/sdm-core"
toimport … "@atomist/sdm/lib/core"
- Change
import … "@atomist/sdm-pack-spring"
toimport … "@atomist/sdm/lib/pack/jvm"
- Change
import … "@atomist/sdm-pack-XYZ"
toimport … "@atomist/sdm/lib/pack/XYZ"
- Change
-
EditMode
in automation-client is noweditModes.EditMode
inimport { editModes } from "@atomist/sdm/lib/client"
-
Some packs that were part of sdm-core have been relocated under
sdm/lib/pack
, so their imports change like these:import { githubGoalStatusSupport } from "@atomist/sdm/lib/pack/github-goal-status"; import { goalStateSupport } from "@atomist/sdm/lib/pack/goal-state"; import { notificationSupport } from "@atomist/sdm/lib/pack/notification";
-
Deprecated exports have been removed from SDM 2.0. If you need help moving away from capabilities that have been removed, please contact us.
Contributing
Contributions to this project from community members are encouraged and appreciated. Please review the Contributing Guidelines for more information. Also see the Development section in this document.
Code of conduct
This project is governed by the Code of Conduct. You are expected to act in accordance with this code by participating. Please report any unacceptable behavior to [email protected].
Documentation
Please see docs.atomist.com for developer documentation.
- API documentation for this project: @atomist/sdm TypeDoc
- List of third-party OSS licenses used in this project: @atomist/sdm OSS licenses
Connect
Follow @atomist and The Composition blog related to SDM.
Support
General support questions should be discussed in the #help
channel in the Atomist community Slack workspace.
If you find a problem, please create an issue.
Development
You will need to install Node.js to build and test this project.
Build and test
Install dependencies.
$ npm install
Use the build
package script to compile, test, lint, and build the
documentation.
$ npm run build
Release
Releases are handled via the Atomist SDM. Just press the 'Approve' button in the Atomist dashboard or Slack.
Created by Atomist. Need Help? Join our Slack workspace.