Socket
Socket
Sign inDemoInstall

@telus/build-essential

Package Overview
Dependencies
0
Maintainers
24
Versions
30
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @telus/build-essential

contains a list of packages which are considered essential for building packages in ci platform


Version published
Weekly downloads
2
Maintainers
24
Install size
12.0 kB
Created
Weekly downloads
 

Readme

Source

Build Essential

version Build Status Docker Build Status

contains a list of packages which are considered essential for building packages in ci platform

Why

Our Reference Architecture introduces a set of standards around linting, code quality, testing are more ...

Those standards are upheld using a variety of tools, however, projects need to add these individual tools as dependencies, which introduces a number of challanges:

CI Environment

CI tests have to run npm install on every project, and the bigger the dependency list, the longer those runs take.

As part of moving to separate CI & CD processes, we have the opportunity to pre-load some of the most common project dependencies into a Docker container

Local Development

For developers working across multipl projects, having to install the same dependencies over and over for every project adds a layer of inconsistency that can be resolved with global dependencies

What

  • npm package: released as an open source package under @telus scope in npm, the package.json file contains a number of pre-selected common dependencies, (mainly used for linting)

    Note: the dependencies are marked as peerDependencies to enable some limitations around eslint and others in global usage. For example, when eslint is installed globally it looks for packages in the global scope, not the local one.

  • Docker Container: a Dockerfile uses the package above as basis for creating a container used in CI jobs

Packages

  • Configuration:

    • @telus/eslint-config - Shared ESLint Config
    • @telus/remark-config - Shared Remark Config
    • @telus/semantic-release-config - Shared Semantic Release Config
  • Tools:

    • editorconfig-checker - EditorConfig validator
    • eslint - ESLint Validator
    • babel-eslint - Babel-ESLint for if you are using types (Flow) or experimental features not supported in ESLint itself yet
    • remark-cli - Remark is a markdown validator
    • semantic-release Semantic Release is a fully automated version management and package publishing tool
    • updated - Updated ensures you have the latest dependencies
  • Utilities:

How

Install Locally

npm install --global @telus/build-essential

Note: the postinstall step will attempt to install more packages globally, a good way to make this work if you are having permission issues is to set your NPM prefix to somewhere in your homedir (e.g. ~/.npm) in your config (~/.npmrc with prefix=<dir>) and to add the bin/ directory to your PATH environment variable. For an example, consider line 15 of the Dockerfile. If you really know what you're doing, but it's not recommended, you could run with sudo depending on your local npm setup

Use in your CI

Use the Docker Container to run your lint steps as per the example provided in this project's circle.yml


Github: @telus • Twitter: @telusdigital

Keywords

FAQs

Last updated on 24 Apr 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc