npm.io
2.5.158 • Published 3 weeks agoCLI

qcobjects-cli

Licence
LGPL-3.0
Version
2.5.158
Deps
7
Size
1.7 MB
Vulns
0
Weekly
0

logo

Learn more about QCObjects framework in https://qcobjects.dev

To start, use:

> su - qcobjects

and go to the path ~/projects/mynewapp

To create a new progressive web app type:

> qcobjects create mynewapp --pwa

To create an accelerated mobile page type:

> qcobjects create mynewapp --amp

The QCObjects HTTP2 Server Settings file is in:

/etc/qcobjects/config.json

To check the status of the service:

> service qcobjects status

To start|stop|prestart the service:

> service qcobjects start
> service qcobjects stop
> service qcobjects restart

Synced Semantic Versioning

Version management is handled through the VERSION file at the project root. Commands read from and write to this file, and can optionally sync changes to package.json and git.

v-patch [filename]

Bumps the patch number (e.g., 1.2.31.2.4). Default filename is VERSION.

Option Alias Description
--sync-git --git Commit changes, tag, and push to git
--sync-npm --npm Also update package.json via npm version (implies --git)
--commit-msg [message] -m Custom commit message
# Just bump the VERSION file
qcobjects v-patch

# Bump, commit, tag, and push
qcobjects v-patch --git -m "fix: resolve timeout issue"

# Bump VERSION + package.json, commit, tag, push
qcobjects v-patch --git --npm
v-minor [filename]

Bumps the minor number (e.g., 1.2.31.3.0). Supports the same options as v-patch.

qcobjects v-minor --git -m "feat: add collaboration endpoints"
v-major [filename]

Bumps the major number (e.g., 1.2.32.0.0). Supports the same options as v-patch.

qcobjects v-major --git --npm -m "breaking: migrate to new API"
v-sync [filename]

Reads the current version from git describe (latest tag), writes it to the VERSION file, updates package.json with npm version, commits, tags, and pushes.

Option Description
-m, --commit-msg [message] Commit message (default: Synced Version v<version>)
qcobjects v-sync -m "sync after release merge"
v-changelog

Generates a changelog from annotated git tags, grouped by minor version, printed to stdout.

qcobjects v-changelog > CHANGELOG.md
Typical workflow
# 1. Bump the patch version and push everything
qcobjects v-patch --git --npm -m "your message"

# 2. CI publishes the new version to npm

# 3. Generate changelog for release notes
qcobjects v-changelog > CHANGELOG.md
CI Pipeline Considerations

When using v-patch --git --npm, the command calls npm version internally. This triggers the preversion and postversion scripts in your package.json:

  • preversion — runs before the version bump (e.g., tests)
  • postversion — runs after the bump (e.g., git push && git push --tags)

After npm version finishes, syncGit creates a second commit for the VERSION file and calls git push && git push --tags again. This means the version tag is pushed twice, which can trigger duplicate CI pipeline runs.

Recommendations by setup
Setup Recommendation
GitHub Actions (tag-triggered publish) Set postversion to only push the branch: "postversion": "git push"
GitLab CI / other CI Keep "postversion": "git push && git push --tags" — duplicate triggers are harmless
Manual publish only Use --git without --npm to skip npm version entirely (no lifecycle scripts run)
Avoid duplicates with v-patch --git (no --npm)

Without --npm, npm version is never called. Only the VERSION file is committed, a single tag is created, and a single git push && git push --tags runs. No duplicate tag push, no duplicate CI.

Example: qcobjects-cli

This repo uses GitHub Actions and configures postversion to push the branch only:

"postversion": "git push"

The tag is still pushed once by syncGit after the VERSION file is committed.


   .d88888b.  .d8888b.  .d88888b. 888       d8b                888
  d88P" "Y88bd88P  Y88bd88P" "Y88b888       Y8P                888
  888     888888    888888     888888                          888
  888     888888       888     88888888b.  8888 .d88b.  .d8888b888888.d8888b
  888     888888       888     888888 "88b "888d8P  Y8bd88P"   888   88K
  888 Y8b 888888    888888     888888  888  88888888888888     888   "Y8888b.
  Y88b.Y8b88PY88b  d88PY88b. .d88P888 d88P  888Y8b.    Y88b.   Y88b.      X88
   "Y888888"  "Y8888P"  "Y88888P" 88888P"   888 "Y8888  "Y8888P "Y888 88888P'
         Y8b                                888
                                           d88P
                                         888P"

  Usage: qcobjects [options] [command]

  Options:
    -V, --version                output the version number
    -h, --help                   output usage information

  Commands:
    create [options] <appname>   Creates an app with <appname>
    publish [options] <appname>  Publishes an app with <appname>
    generate-sw <appname>        Generates the service worker  <appname>
    launch <appname>             Launches the application

  Use:
    $ qcobjects-cli [command] --help
    For detailed information of a command

Keywords