Manual

Select one of the manuals below:

Updating atscm

You can use atscm to update atscm ๐Ÿ˜€

Installing new versions

Simply run atscm update to install the latest version available. Add the --beta flag to install prerelease versions. Ensure to backup your project before doing so.

Internally, we use npm to install updates, which means that you can also run npm install --save-dev atscm instead.

Updating your atscm project

We'll do our best to follow semantic versioning, which means you shouldn't need to update your project sourc

Tutorial: Custom Transformer

tl;dr: Jump to the tutorial-custom-transformer repository to see the results.

In this document we'll guide you through the steps necessary to implement a custom Transformer. Our transformer will use Babel to transpile ES2015/ES6 JavaScript to plain ES5 JavaScript that works in all Browsers.

Overview

Custom transformers provide an easy way to extend the build functionality of atscm. Basically, a transformer implements two behaviours: How atvise server nodes are ma

Node ID conflicts

Note that rename files are not available for atscm < v1.0.0. Use atscm update to use the latest version

How atscm handles id conflicts

Let's assume we have two atvise server nodes, AGENT.OBJECT.conflictingnode and AGENT.OBJECT.ConflictingNode. These are valid node ids on the server, but when stored to the (case-insensitive) filesystem, the behaviour is undefined.

When atscm discovers such a name conflict it creates a rename file at ./atscm/rename.json. This file will con

Guide: gulp.js plugins

Please note: This guide assumes you have a basic knowledge on how gulp.js and custom atscm transformers work. You may go through gulp's getting started guide or the custom transformer tutorial first otherwise.

atscm heavily relies on the gulp.js build tool. Therefore it's pretty easy to integrate existing gulp plugins into atscm transformers.

Using Transformer class

Basically, the only Transformer method you have to override is Transformer#applyToStream. In there,

Guide: Debugging atscm

atscm can be easily debugged using Google Chrome's developer tools. All you have to do to attach the debugger, is to start the command line interface with the --inspect or --inspect-brk flag. For this to work you must first find the path to atscm-cli's executable:

which atscm

Note: This only works on Linux and macOS only

You can now use this executable directly and run it with the inspector flags, e.g.:

node --inspect-brk "$(which atscm)" [arguments passed to atscm]

Guide: Error handling

Adding source locations

When a throwing an Error that was caused by client code, you should provide location info so it can be traced back to the source code.

To do so, simply add additional properties to the error object, containing the source code, the start location and (optionally) the end location.

function myTransformCode() {
  const sourceCode = 'the code transformed';

  try {
    // Do something that may throw an error...
  } catch (error) {
    Object.assign(error, 

Guide: Using the API

Learn how to use the atscm API to e.g. run server serverscripts in your node application. Available since atscm v1.0.0. Use atscm update to use the latest version

Installation

First of all, make sure your project has atscm installed: Take a look at your package.json file and make sure, atscm is present in the dependencies or (depending on your use case) devDependencies section. Otherwise, install atscm if necessary:

# If you need atscm as a runtime-dependency
npm install --s

Contribute: Testing atscm

atscm uses both unit and integration tests. Mocha is used as a test runner and nyc for test coverage reports.

Test scripts:

Command Description
npm run test Run all tests
npm run test:unit Run all unit tests
npm run test:integration Run all integration tests
npm run test:watch Re-run all tests when files change
npm run test:coverage Check test coverage

Unit tests

The unit tests are located inside ./test/src. Test files are named after the module they test,

Contributing

We would love for you to contribute to atSCM. As a contributor, here are the guidelines we would like you to follow:

Found a bug?

If you find a bug in the source code, you can help us by submitting an issue to this repository. Even better, you can submit a Pull Request with a fix.

Missing a feature?

You can request a new feature by submitting an issue to this repository. If you would like to implement a new feature, please submit an issue with a proposal for your work first, to be sure

1.5.2 (2021-03-23)

Bug Fixes

atscm-v1.5.1 (2021-02-19)

Bug Fixes

atscm-v1.5.0 (2021-02-17)

Features

  • pull: Create config files only if necessary (#448) (90aed75)

atscm-v1.4.2 (2021-02-17)

Bug Fixes

  • pull: Do not pull empty display scripts (#447) (9fbaba1)

atscm-v1.4.1 (2021-02-16)

Bug Fixes

atscm-v1.4.0 (2021-02-15)

Features

  • atscm: Support for a