All Projects → ramasilveyra → Gitpkg

ramasilveyra / Gitpkg

Licence: mit
Publish packages as git tags

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Gitpkg

lint-deps
Lint for unused or missing dependencies in your node.js projects. Customize with plugins or configuration.
Stars: ✭ 48 (-76.92%)
Mutual labels:  package, modules
get-installed-path
Get locally or globally installation path of given package name.
Stars: ✭ 39 (-81.25%)
Mutual labels:  package, modules
Trex
Package Manager for deno 🦕
Stars: ✭ 433 (+108.17%)
Mutual labels:  package, modules
Sunburstr
R htmlwidget for interactive sunburst plots
Stars: ✭ 177 (-14.9%)
Mutual labels:  package
Unityheapexplorer
A Memory Profiler, Debugger and Analyzer for Unity 2019.3 and newer.
Stars: ✭ 179 (-13.94%)
Mutual labels:  package
Pytorch Generative Model Collections
Collection of generative models in Pytorch version.
Stars: ✭ 2,296 (+1003.85%)
Mutual labels:  package
Bit
A tool for component-driven application development.
Stars: ✭ 14,443 (+6843.75%)
Mutual labels:  modules
Roadrunner Laravel
RoadRunner ⇆ Laravel bridge
Stars: ✭ 167 (-19.71%)
Mutual labels:  package
Progressr
三 R package: An Inclusive, Unifying API for Progress Updates
Stars: ✭ 198 (-4.81%)
Mutual labels:  package
Beginners Python Examples
Basic Python CLI programs
Stars: ✭ 190 (-8.65%)
Mutual labels:  modules
Boss
Dependency Manager for Delphi
Stars: ✭ 188 (-9.62%)
Mutual labels:  package
Laravel Feature
A package to manage feature flagging in a Laravel project.
Stars: ✭ 184 (-11.54%)
Mutual labels:  package
Skeleton Nova Tool
A skeleton repository for Spatie's Nova Packages
Stars: ✭ 191 (-8.17%)
Mutual labels:  package
Json table
Flutter package: Json Table Widget to create table from json array
Stars: ✭ 178 (-14.42%)
Mutual labels:  package
M2
The primary source code repository for Macaulay2, a system for computing in commutative algebra, algebraic geometry and related fields.
Stars: ✭ 200 (-3.85%)
Mutual labels:  modules
Laravel Messenger
Simple user messaging package for Laravel
Stars: ✭ 2,140 (+928.85%)
Mutual labels:  package
Blogetc
Easily add a full Laravel blog (with built in admin panel and public views) to your laravel project with this simple package.
Stars: ✭ 198 (-4.81%)
Mutual labels:  package
L5modular
Generates and handles Modules for Laravel
Stars: ✭ 188 (-9.62%)
Mutual labels:  modules
Search widget
Flutter package: Search Widget for selecting an option from a data list.
Stars: ✭ 188 (-9.62%)
Mutual labels:  package
Nebula
Nebula is a minimalistic and easy to use administration tool for Laravel applications, made with Laravel, Alpine.js, and Tailwind CSS.
Stars: ✭ 190 (-8.65%)
Mutual labels:  package

gitpkg

Publish packages as git tags

🔧 Works with projects with build steps.
👯 Works with projects with multiple packages (monorepos).
🏎 Lightweight git tags (only the files needed are included).

Table of Contents

Background

Both npm and yarn support installing packages from git tags.

But things can get difficult with packages that have a build step (eg babel) and monorepos with multiples packages (eg lerna).

gitpkg publish creates a git tag with the same files as if you were running npm publish or yarn publish and uploads the generated git tag to a git repository.

Also you can publish any gitpkg package to the same repository, so you can have only one repository used as common registry and you get away from your project git repository the git tags with the build code.

Terminology:

  • gitpkg package: git tag generated by gitpkg.
  • gitpkg registry: git repository used as common host for your gitpkg packages.

Install

Node.js v10.12 or newer is required.

npm registry

Via the yarn client:

$ yarn global add gitpkg

Via the npm client:

$ npm install -g gitpkg

gitpkg registry

Via the yarn client:

$ yarn global add ramasilveyra/public-registry#gitpkg-v1.0.0-beta.2-gitpkg

Via the npm client:

$ npm install -g ramasilveyra/public-registry#gitpkg-v1.0.0-beta.2-gitpkg

Usage

Publish

Publishes a package to a git repository, by default uploads the package to the git repository in the git remote origin (git remote -v to see your git remote origin url). The package published is defined by the package.json in the current directory.

$ gitpkg publish

See in action.

--registry, -r

$ gitpkg publish --registry [email protected]:org/private-registry.git

This flag tells gitpkg to publish the package to a specific gitpkg registry.

You can also set the gitpkg registry permanently by adding "gitpkg":{"registry":"[email protected]:org/private-registry.git"} to the package.json.

Configuration

You can also configure gitpkg with a config file. Create a file named gitpkg.config.js in the root of your project or in the root of a subpackage.

Available config settings

registry

Publish the package to a specific gitpkg registry. Same as the registry flag of the cli.

getTagName

Function used to create the git tags. The function receives one object pkg, which is the content of the package.json file.

// Example content of gitpkg.config.js
module.exports = () => ({
  registry: "[email protected]:org/private-registry.git",
  getTagName: (pkg) => `${pkg.name}-v${pkg.version}-gitpkg`,
});

Contribute

Feel free to dive in! Open an issue or submit PRs.

gitpkg follows the Contributor Covenant Code of Conduct.

License

MIT © Ramiro Silveyra d'Avila

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].