Documents configuration tasks managed by robo-config.
- 📂
assorted/@npm-opensource
- 📂
struct/#npm-opensource
- 📂
semantic-release/#npm-opensource
- 📂
package/#npm-opensource
- 📂
npm/#npm-opensource
- 📂
license/#npm-opensource
- 📂
jetbrains/#npm-opensource
- 📂
git/#npm-opensource
- 📂
gally/#npm-opensource
- 📂
editor/#npm-opensource
- 📂
dependabot/#npm-opensource
- 📂
circleci/#npm-opensource
- 📂
badges/#npm-opensource
- 📂
Manage various configuration files for an open source npm package on github.
Targets | Requires | Variables |
---|---|---|
project ├─ .babelrc ├─ .circleci │ └─ config.yml ├─ .dependabot │ └─ config.yml ├─ .editorconfig ├─ .eslintrc.json ├─ .gally.json ├─ .gitignore ├─ .idea │ └─ ${projectName}.iml ├─ .npmignore ├─ .releaserc.json ├─ LICENSE ├─ package.json ├─ README.md ├─ src │ └─ index.js └─ test ├─ index.spec.js └─ mocha.opts |
Manage basic project structure for npm open source package on github.
Targets | Requires | Variables |
---|---|---|
project ├─ .babelrc ├─ .eslintrc.json ├─ README.md ├─ src │ └─ index.js └─ test ├─ index.spec.js └─ mocha.opts |
Updating README.md
using create-only.
- Create README.md template file.
Targets | Variables |
---|---|
project └─ README.md |
Updating test/mocha.opts
using create-only.
- Create options file for mocha tests.
Targets | Requires |
---|---|
project └─ test └─ mocha.opts |
Updating test/index.spec.js
using create-only.
- Create package template index.spec.js test file.
Targets | Requires |
---|---|
project └─ test └─ index.spec.js |
Updating src/index.js
using create-only.
- Create package template index.js file.
Targets | Requires |
---|---|
project └─ src └─ index.js |
Updating .eslintrc.json
using overwrite.
- Create configuration file for eslint enforcing opinionated, best practices.
Targets | Requires |
---|---|
project └─ .eslintrc.json |
Updating .babelrc
using merge-deep.
- Create configuration file for babel.
Targets | Requires |
---|---|
project └─ .babelrc |
Manage semantic-release configuration for npm open source package on github.
Targets | Requires |
---|---|
project └─ .releaserc.json |
Updating .releaserc.json
using overwrite.
- Slightly extended release commit convention for semantic-release.
Targets | Requires |
---|---|
project └─ .releaserc.json |
Manage package.json for npm open source package on github.
Targets | Requires | Variables |
---|---|---|
project └─ package.json |
Updating package.json
using merge-shallow.
- Set various entries.
Targets | Requires |
---|---|
project └─ package.json |
Updating package.json
using merge-deep.
- Set various entries.
Targets | Requires | Variables |
---|---|---|
project └─ package.json |
Updating package.json
using default-shallow.
- Set defaults for various entries.
Targets | Requires |
---|---|
project └─ package.json |
Updating package.json
using default-deep.
- Set defaults for various entries.
Targets | Requires |
---|---|
project └─ package.json |
Manage npm configuration for npm open source package on github.
Targets | Requires |
---|---|
project └─ .npmignore |
📋 npm/npmignore (index
)
Updating .npmignore
using unique-top.
- Inject comment into .npmignore explaining when to use it.
Targets | Requires |
---|---|
project └─ .npmignore |
Manage license configuration for npm open source package on github.
Targets | Requires | Variables |
---|---|---|
project ├─ LICENSE └─ package.json |
Manage license configuration for npm open source package on github.
Targets | Requires | Variables |
---|---|---|
project ├─ LICENSE └─ package.json |
Updating package.json
using merge-shallow.
- Link MIT license file into npm configuration.
Targets | Requires | Variables |
---|---|---|
project └─ package.json |
Updating LICENSE
using overwrite.
- Generate MIT license file.
Targets | Variables |
---|---|
project └─ LICENSE |
Manage WebStorm configuration for npm open source package on github.
Targets | Requires | Variables |
---|---|---|
project └─ .idea └─ ${projectName}.iml |
Updating .idea/${projectName}.iml
(if exists) using xml-merge.
- Mark
coverage
Folder as excluded in Jetbrains.
Targets | Requires | Variables |
---|---|---|
project └─ .idea └─ ${projectName}.iml |
Manage gitignore configuration for npm open source package on github.
Targets | Requires |
---|---|
project └─ .gitignore |
📋 git/gitignore (index
)
Updating .gitignore
using unique-top.
- Inject recommended entries into gitignore file.
- Default ignores for JetBrains IDE.
- Default ignores for OSX
- Default ignores for NodeJs
Targets | Requires |
---|---|
project └─ .gitignore |
Manage gally configuration for npm open source package on github.
Targets | Requires | Variables |
---|---|---|
project └─ .gally.json |
Updating .gally.json
using overwrite.
- Restrictive two-branch gally config.
Targets | Requires | Variables |
---|---|---|
project └─ .gally.json |
Manage editor configuration for npm open source package on github.
Targets |
---|
project └─ .editorconfig |
Updating .editorconfig
using overwrite.
- Two space line indentation.
- Set
lf
line endings. - Set
utf8
encoding. - Remove unnecessary whitespaces.
Targets |
---|
project └─ .editorconfig |
Manage dependabot configuration for npm open source package on github.
Targets | Requires |
---|---|
project └─ .dependabot └─ config.yml |
Updating .dependabot/config.yml
using overwrite.
- Configure dependabot to instantly merge javascript dependency updates into the
dev
branch.
Targets | Requires |
---|---|
project └─ .dependabot └─ config.yml |
Manage circleci configuration for npm open source package on github.
Targets | Requires |
---|---|
project └─ .circleci └─ config.yml |
Updating .circleci/config.yml
using overwrite.
- Restrictive two-branch gally config.
Targets | Requires |
---|---|
project └─ .circleci └─ config.yml |
Add badged for npm open source package on github.
Targets | Requires | Variables |
---|---|---|
project └─ README.md |
Updating README.md
using merge-below-title.
- Display semantic-release badge in README.
Targets | Requires |
---|---|
project └─ README.md |
Updating README.md
using merge-below-title.
- Display npm status badge in README.
Targets | Requires | Variables |
---|---|---|
project └─ README.md |
Updating README.md
using merge-below-title.
- Display npm downloads badge in README.
Targets | Requires | Variables |
---|---|---|
project └─ README.md |
Updating README.md
using merge-below-title.
- Display js-gardener badge in README.
Targets | Requires |
---|---|
project └─ README.md |
Updating README.md
using merge-below-title.
- Display dependabot badge in README.
Targets | Requires | Variables |
---|---|---|
project └─ README.md |
📋 badges/david-dm (index
)
Updating README.md
using merge-below-title.
- Display david-dm.com badge in README.
Targets | Requires | Variables |
---|---|---|
project └─ README.md |
Updating README.md
using merge-below-title.
- Display coveralls badge in README.
Targets | Requires | Variables |
---|---|---|
project └─ README.md |
📋 badges/circleci (index
)
Updating README.md
using merge-below-title.
- Display circleci badge in README.
Targets | Requires | Variables |
---|---|---|
project └─ README.md |
Programming Language.
JavaScript, often abbreviated as JS, is a high-level, interpreted programming language that conforms to the ECMAScript specification. It is characterized as dynamic, weakly typed, prototype-based and multi-paradigm.
JavaScript test framework.
Mocha is a JavaScript test framework for Node.js programs, featuring browser support, asynchronous testing, test coverage reports, and use of any assertion library.
JavaScript assertion library.
Chai is a BDD / TDD assertion library for node and the browser that can be paired with any javascript testing framework.
Linting for JavaScript.
JSLint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules.
JavaScript Compiler.
Babel is a toolchain that is mainly used to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript in current and older browsers or environments.
Automates npm package release workflow.
Automates the package release workflow including:
- determining the next version number
- generating the release notes
- publishing the package
Javascript package repository.
Requires the project to be conform with the npm standard, i.e. contain a package.json file. Does not require the project to be published to npm.
Collection of various IDEs.
Collection of various IDEs. There exists one for every major programming language and they are all very similar (i.e. shortcuts, layout), which makes them great when switching languages.
Coverage testing for javascript projects.
A major coverage testing framework for javascript. Comes with all the bells and whistles.
Version control system.
The most used version control system. Not to be confused with github (which uses git).
Run automated jobs using docker containers.
Allows set up for ci/cd using docker containers. Automates development process quickly, safely, and at scale.
Automation around github.com Repository Management
Allows management of github.com repositories through configuration. Very powerful when you need to synchronize settings across multiple repositories.
Major development platform powered by git.
GitHub is a code hosting platform for collaboration and version control. Lets you and others work together on projects.
Automatic dependency updates.
Makes dependency updates very easy by automatically creating pull requests in your repo. All major programming languages are supported or work is done towards supporting them.
Dependency management similar to npm.
Very similar functionality to npm cli.
Showcase and analyze coverage reports.
Enables displaying of a status badge indicated code coverage percent of the project. Furthermore allows anyone to easily drill down into missing coverage or coverage changes.
Javascript package repository published.
Requires the project to be published to npm either as a private or public package.
NodeJs Project Management.
Enforces and helps setting up best practices around NodeJs projects. Enforces highest code quality and minimizes package setup and maintenance complexity - so you can focus on writing code. Highly recommended if you are getting started with a new package and extremely useful if you are maintaining multiple packages.
Dependency badge for javascript github repositories.
Enables displaying of a status badge indicated whether the dependencies are outdated.
packageName : string
Name of the package on npm.
The name of the project as published to npm. Note that for scoped packages the name can differ significantly from the repo name.
repoKey : string
Repository key.
The repository key contains the owner or organization of the project and the repository name itself, separated by a slash.
ownerName : string
Name of the owner of this project.
The owner name of the project is the name of the person or organization publishing the project under their license.
projectName : string
Name of the project.
The project name is in most cases identical to the repository name.
owner : string
The owner of the code on github.
The code owner is the gatekeeper of the project, ultimately responsible for all changes.
mergeBot : string
The github name of the bot used for automatic merging.
🔹 any
Does nothing when the file is already present, otherwise creates it.
🔹 any
Simply replace the old with the new content.
🔹 json
, yml
Does a "smart" deep merge.
This will not work as desired for all object deep merging, but should for many cases.
🔹 json
, yml
Does a shallow merge aka Object.assign()
.
Useful when specific keys of the target need to be overwritten.
🔹 json
, yml
Similar to merge-shallow
, but keeps existing values instead of overwriting.
Useful to ensure specific keys of the target are present without overwriting existing content.
🔹 json
, yml
Similar to merge-deep
, but keeps existing values instead of overwriting.
Useful to ensure specific keys of the target are present without overwriting existing content.
🔹 list
Merges content at the top of the file and removes existing, duplicate lines.
Useful for managing e.g. .gitignore
when the original content should be kept.
🔹 xml
Does a "smart" deep merge.
This will not work as desired for all xml merging, but should for many cases.
🔹 list
, nostruct
Merges content below title.