• Stars
    star
    178
  • Rank 214,989 (Top 5 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created almost 7 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Atomist Software Delivery Machine framework

Software Delivery Machine - @atomist/sdm

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:

  1. Remove Atomist SDM and automation-client dependencies

    $ npm uninstall @atomist/automation-client @atomist/sdm @atomist/sdm-core @atomist/sdm-local
    
  2. Remove any extension SDM packs

    $ npm uninstall @atomist/sdm-pack-ABC @atomist/sdm-pack-DEF @atomist/sdm-pack-GHI
    
  3. Reinstall Atomist SDM

    $ npm install @atomist/sdm
    
  4. The consolidation of packages introduces a breaking change: you must update your import statements. Specifically:

    • Change import … "@atomist/automation-client" to import … "@atomist/sdm/lib/client"
    • Change import … "@atomist/sdm-core" to import … "@atomist/sdm/lib/core"
    • Change import … "@atomist/sdm-pack-spring" to import … "@atomist/sdm/lib/pack/jvm"
    • Change import … "@atomist/sdm-pack-XYZ" to import … "@atomist/sdm/lib/pack/XYZ"
  5. EditMode in automation-client is now editModes.EditMode in import { editModes } from "@atomist/sdm/lib/client"

  6. 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";
    
  7. 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.

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.

More Repositories

1

microgrammar

Atomist microgrammar NPM TypeScript module
TypeScript
26
star
2

org-visualizer

Organization Visualizer using Atomist project scanning
TypeScript
25
star
3

cli

The Atomist CLI
TypeScript
20
star
4

welcome

Introduction to Atomist
19
star
5

sdm-pack-aspect

Uses Atomist Project API to visualize important data about your organization
TypeScript
15
star
6

automation-client

Automation client for running command and events handlers against the Atomist API.
TypeScript
15
star
7

sdm-local

Local software delivery machine support
TypeScript
12
star
8

slack-messages

Helper library for rendering Slack messages in Atomist automations
TypeScript
11
star
9

sdm-pack-spring

Extension Pack for an Atomist SDM to automate delivery of Spring and Spring Boot applications
TypeScript
11
star
10

lacinia-apollo-federation

Apollo Federation helper for Lacinia
Clojure
11
star
11

uhura

Atomist Uhura, an SDM which is capable of running CI workloads for common project types
TypeScript
9
star
12

sdm-core

Event-based implementation of an SDM, which subscribes to Atomist GraphQL
TypeScript
6
star
13

samples

Collection of sample SDMs, each showing certain features
TypeScript
5
star
14

sdm-pack-node

Node-related accoutrement for an Atomist SDM
TypeScript
4
star
15

sdm-pack-k8s

Extension Pack for an Atomist SDM to integrate Kubernetes deployments
TypeScript
3
star
16

sdm-pack-cloudfoundry

Extension pack for an Atomist SDM to deploy to Pivotal Cloud Foundry.
TypeScript
2
star
17

yaml-updater

Clean updates to YAML files
TypeScript
2
star
18

shadow-cljs

A Docker image for building shadow-cljs projects
Dockerfile
2
star
19

antlr

Automation client ANTLR integration
TypeScript
1
star
20

sdm-pack-pulumi

TypeScript
1
star
21

sdm-pack-clojure

TypeScript
1
star
22

sdm-pack-fingerprint

Atomist software delivery machine (SDM) extension pack providing fingerprinting support.
TypeScript
1
star
23

automation-client-ext-eventlog

Extension to an Atomist automation-client for sending events into the AtomistLogs event stream
TypeScript
1
star
24

tree-path

TreeNode and path expression support for use in automation clients
TypeScript
1
star