Code Monkey home page Code Monkey logo

scm4j-releaser's Introduction

Release Build Status Coverage Status

Terms

  • component: component has its own repository and can be built and uploaded to some repository
  • project: root component
  • managable dependency: dependency of any component which is "under control", i.e. can be branched, built and uploaded to a maven repository
  • mdeps: file which lists managable dependencies, is located at the root of every repository
  • develop branch: branch which is used as a source for release branches (in other words - all development happens on). By default it is master or trunk, depending on VCS

Usage

  1. Add version file to your repository, optionally mdeps
  2. Clone https://github.com/scm4j/scm4j-releaser-shell
  3. Execute releaser, it will create cc, cc.yml, credentials.yml files in $user.home/.scm4j folder. Edit these files (ref. comments there)
  4. Run releaser (status|fork|build) com.mycompany:my-root-component

E.g. we have a product3 which depends on component39:0.9.5 and component50:0.5.0, all components and product3 sit in their own repositories. Now we add some commits to the develop branch of component50 and run the tool using status command. Tool analyzes repositories and suggests that new versions of component50 and product3 should be built. Then we can run tool using fork and build commands. fork command creates new release branches and increase minor versions in develop branches, build does whatever configured plus increases patch version in release branch.

For version definitions ref. semantic Versioning 2.0.0.

Run from gradle

  • gradlew run -Pa=status,com.mycompany:my-root-component

Advanced mdeps Management

  • It is safe to add a new entry without version to any SNAPSHOT mdeps
  • If you add or modify some release mdeps you must also copy these changes to all your project mdeps
    • Otherwise it is possible to get "Inconsistent dependencies" error
  • It is safe to remove a record from mdeps and add it to build.gralde - this way you can change dependency version at your own risk, do not cry aftewards

Under the Hood

  • CLI gets ExtendedStatusTree using ExtendedStatusTreeBuilder class (ref. release statuses)
  • ActionTreeBuilder converts ExtendedStatusTree to ActionTree (IAction)
  • IAction is executed

Data Structure

Features

Related repositories

See also

Historical version

Problems

  • Subversion is very slow on VMs if network type is NAT. Bridge type gives much better perfomance. See similar problem here

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.