Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build improvements #7

Merged
merged 31 commits into from
Oct 16, 2019
Merged

Build improvements #7

merged 31 commits into from
Oct 16, 2019

Conversation

sgtcoolguy
Copy link
Contributor

@sgtcoolguy sgtcoolguy commented Oct 15, 2019

  • change npm package to be under @titanium-sdk org
  • Add a whole lot of development dependencies to enforce linting/formatting
    • lint apidocs
    • eslint for JS
    • clang-format for iOS source
    • conventional commit enforcement
  • Fix up apidoc linting issues (around use of non-ASCII apostrophe/double-quotes, reference to non-existent type for array type)

This is mainly to try and align native modules and the SDK in enforcing some basic development workflows: conventional commits, clang-format for iOS/Android source, eslint for JS, some basic unit tests, validation of apidocs.

@build
Copy link

build commented Oct 15, 2019

Messages
📖

💾 Here are the artifacts produced:

📖

✅ All tests are passing
Nice one! All 8 tests are passing.

Dependencies with modified semantic versioning:

New dependencies added: @commitlint/cli, @commitlint/config-conventional, @seadub/clang-format-lint, clang-format, commitizen, husky, lint-staged and titanium-docgen.

@commitlint/cli

Author: Mario Nebl

Description: Lint your commit messages

Homepage: https://github.com/conventional-changelog/commitlint#readme

Createdover 2 years ago
Last Updated30 days ago
LicenseMIT
Maintainers4
Releases54
Direct Dependencies@commitlint/format, @commitlint/lint, @commitlint/load, @commitlint/read, babel-polyfill, chalk, get-stdin, lodash, meow, resolve-from and resolve-global
Keywordsconventional-changelog, commitlint and cli
README

Lint commit messages

@commitlint/cli

Getting started

npm install --save-dev @commitlint/cli @commitlint/config-angular
echo "module.exports = {extends: ['@commitlint/config-angular']};" > commitlint.config.js

Consult docs/cli for comprehensive documentation.

@commitlint/config-conventional

Author: Mario Nebl

Description: Shareable commitlint config enforcing conventional commits

Homepage: https://github.com/conventional-changelog/commitlint#readme

Createdalmost 2 years ago
Last Updated30 days ago
LicenseMIT
Maintainers4
Releases23
Keywordsconventional-changelog, commitlint, commitlint-config and angular
README

Lint your conventional commits

@commitlint/config-conventional

Shareable commitlint config enforcing conventional commits.
Use with @commitlint/cli and @commitlint/prompt-cli.

⚠️
IMPORTANT This is a direct replacement for @commitlint/config-angular prior to version 4. config-angular diverged from the conventional commit convention as of version 5. See #146 for details.

Getting started

npm install --save-dev @commitlint/config-conventional @commitlint/cli
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js

Rules

Problems

The following rules are considered problems for @commitlint/config-conventional and will yield a non-zero exit code when not met.

Consult docs/rules for a list of available rules.

type-enum

  • condition: type is found in value

  • rule: always

  • value

    [
      'build',
      'ci',
      'chore',
      'docs',
      'feat',
      'fix',
      'perf',
      'refactor',
      'revert',
      'style',
      'test'
    ]
echo "foo: some message" # fails
echo "fix: some message" # passes

type-case

  • description: type is in case value
  • rule: always
  • value
      'lowerCase'
echo "FIX: some message" # fails
echo "fix: some message" # passes

type-empty

  • condition: type is empty
  • rule: never
echo ": some message" # fails
echo "fix: some message" # passes

scope-case

  • condition: scope is in case value
  • rule: always
  'lowerCase'
echo "fix(SCOPE): some message" # fails
echo "fix(scope): some message" # passes

subject-case

  • condition: subject is in one of the cases ['sentence-case', 'start-case', 'pascal-case', 'upper-case']
  • rule: never
echo "fix(SCOPE): Some message" # fails
echo "fix(SCOPE): Some Message" # fails
echo "fix(SCOPE): SomeMessage" # fails
echo "fix(SCOPE): SOMEMESSAGE" # fails
echo "fix(scope): some message" # passes
echo "fix(scope): some Message" # passes

subject-empty

  • condition: subject is empty
  • rule: never
echo "fix:" # fails
echo "fix: some message" # passes

subject-full-stop

  • condition: subject ends with value
  • rule: never
  • value
  '.'
echo "fix: some message." # fails
echo "fix: some message" # passes

header-max-length

  • condition: header has value or less characters
  • rule: always
  • value
  72
echo "fix: some message that is way too long and breaks the line max-length by several characters" # fails
echo "fix: some message" # passes

@seadub/clang-format-lint

Author: Christopher Williams

Description: Validate and/or fix formatting of files via clang-format

Homepage: https://github.com/sgtcoolguy/clang-format-lint#readme

Created13 days ago
Last Updated13 days ago
LicenseMIT
Maintainers1
Releases2
Direct Dependenciescommander, glob and p-limit
Keywordsclang, clang-format and lint
README

clang-format-lint

A very simple wrapper around the clang-format npm package/binary.

Intended to be used to either validate existing files, or automatically fix the formatting on them.

Usage:

npx clang-format-lint [--fix] [--exec-limit [limit]] glob[ glob]*

e.g. To check if your source files match your formatting rules:

npx clang-format-lint android/src/**/*.java

e.g. To ensure your source files match your formatting rules:

npx clang-format-lint --fix android/src/**/*.java

clang-format

Author: Unknown

Description: node wrapper around clang-format

Homepage: https://github.com/angular/clang-format#readme

Createdover 4 years ago
Last Updatedabout 1 year ago
LicenseApache-2.0
Maintainers3
Releases63
Direct Dependenciesasync, glob and resolve
README

Build Status

clang-format

node.js module which wraps the native clang-format executable.

From the command-line:

$ npm install -g clang-format
$ clang-format -help

If your platform isn't yet supported, you can create the native binary from
the latest upstream clang sources, make sure it is stripped and optimized
(should be about 1.4MB as of mid-2015) and send a pull request to add it.

Checking formatting

Ensuring that changes to your code are properly formatted is an important part
of your development workflow. We recommend using a git pre-commit hook. You can
configure this as follows:

  1. add a precommit script to your package.json file:

    "scripts": {
        "precommit": "check-clang-format"
    }

    By default, the user gets an error instructing them to run
    ./node_modules/.bin/git-clang-format. You may find it more ergonomic to set
    up a package.json script, eg.
    "scripts": { "format": "git-clang-format" }

    In this case, add a second argument to the "precommit" script, giving the
    error you'd like to print for users, eg.

    "precommit": "check-clang-format \"yarn format\""

  2. Add a devDependency on the husky package, which will add a
    .git/hooks/pre-commit script, which in turn triggers the precommit
    package.json script to run whenever someone adds a commit in this repository:

    $ yarn add -D husky

    or

    npm install --save-dev husky

Why do this in a pre-commit hook? For one thing, it's faster to run
clang-format only on the changed files, especially as the repository grows.
Also, this lets you upgrade clang-format or change your settings without
needing to re-format the entire repository, while still enforcing that later
changes follow the new style.

Globbing files

$ clang-format --glob=folder/**/*.js

This will run clang-format once per file result, and show the total
formatted files at the end.
See node-glob for globbing semantics.

Compiling clang-format

For Linux, compile a statically linked MinSizeRel build:

cmake -G Ninja -DCMAKE_BUILD_TYPE=MinSizeRel -DLLVM_BUILD_STATIC=true ..
ninja clang-format

For Mac OS X, static linking is not required.

Windows

Windows snapshot builds to include in the release can be found at the
LLVM website.

Configure with:

cmake -G "Visual Studio 12" -DCMAKE_BUILD_TYPE=MinSizeRel ..

In the generated Visual Studio project, search for the clang-format binary in
the Solution Explorer window, right click and choose Build.

commitizen

Author: Jim Cummins

Description: Git commit, but play nice with conventions.

Homepage: https://github.com/commitizen/cz-cli

Createdover 4 years ago
Last Updated3 months ago
LicenseMIT
Maintainers5
Releases64
Direct Dependenciescachedir, cz-conventional-changelog, dedent, detect-indent, find-node-modules, find-root, fs-extra, glob, inquirer, is-utf8, lodash, minimist, shelljs, strip-bom and strip-json-comments
Keywordscommit, pretty, format, conventional changelog and commitizen
This README is too long to show.

husky

Author: Typicode

Description: Prevents bad commit or push (git hooks, pre-commit/precommit, pre-push/prepush, post-merge/postmerge and all that stuff...)

Homepage: https://github.com/typicode/husky#readme

Createdover 5 years ago
Last Updated4 days ago
LicenseMIT
Maintainers1
Releases133
Direct Dependencieschalk, ci-info, cosmiconfig, execa, get-stdin, opencollective-postinstall, pkg-dir, please-upgrade-node, read-pkg, run-node and slash
Keywordsgit, hook, hooks, pre-commit, precommit, post-commit, postcommit, pre-push, prepush, post-merge, postmerge, test and lint
This README is too long to show.

lint-staged

Author: Andrey Okonetchnikov

Description: Lint files staged by git

Homepage: https://github.com/okonet/lint-staged#readme

Createdalmost 4 years ago
Last Updated9 days ago
LicenseMIT
Maintainers1
Releases111
Direct Dependencieschalk, commander, cosmiconfig, debug, dedent, del, execa, listr, log-symbols, micromatch, normalize-path, please-upgrade-node, string-argv and stringify-object
Keywordslint, git, staged, eslint, prettier, stylelint, code, quality, check, format and validate
This README is too long to show.

titanium-docgen

Author: Axway Appcelerator

Description: Generates Titanium API documentation in different formats

Homepage: https://github.com/appcelerator/docs-devkit#readme

Created3 months ago
Last Updatedabout 1 month ago
LicenseApache-2.0
Maintainers1
Releases4
Direct Dependenciescolors, ejs, js-yaml, markdown-it and node-appc
Keywordstitanium, docgen, documentation and docs
README

titanium-docgen

Generates Titanium API documentation in different formats

Installation

npm i titanium-docgen -D

Usage

node docgen [--addon-docs <PATH_TO_YAML_FILES] [--css <CSS_FILE>] [--format <EXPORT_FORMAT>] [--output <OUTPUT_DIRECTORY>] <PATH_TO_YAML_FILES>

For a description of each option. run docgen --help.

Supported formats

Format Description
addon
changes
html HTML files for the official docs at https://docs.appcelerator.com
jsca JSCA content assist metadata
jsduck https://github.com/senchalabs/jsduck
json JSON metadata file
json-raw Same as json, but with no pre-rendered markdown
modulehtml
parity
solr Solr search index
typescript TypeScript type definition file

Generated by 🚫 dangerJS against 712b757

@sgtcoolguy sgtcoolguy merged commit 712b757 into master Oct 16, 2019
@sgtcoolguy sgtcoolguy deleted the build-improvements branch October 16, 2019 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants