-
Notifications
You must be signed in to change notification settings - Fork 296
Branching and Release
This page discusses proposed changes to the branching and release scheme for g2core. Please feel free to comment and edit.
- Master branch - is currently the stable release branch. Pushes to master are performed periodically as code gets sufficient field history from early adopters of edge code
- Edge branch - is currently the working branch. Bug and feature updates are performed against this branch. All pull requests should be performed from this branch.
- Issue-NNN branches - are created to work on bugs or features. These are pulled into edge via pull requests.
- Dev branches - The Dev prefix has already been deprecated, but you may still see some dev branches around.
The proposed scheme is below:
- Release branch - is the stable release branch. Pushes to Release are performed periodically as code gets sufficient field history from early adopters of edge code. Some patches may be applied to Release, but these should always be promoted up through Master. New feature development should not be done against Release.
- Master branch - is the working branch. Bug and feature updates are performed against this branch. All pull requests should be performed from this branch.
- Issue-NNN branches - are created to work on bugs or features. These are pulled into Master via pull requests against Master.
- Edge branch - Edge will be deprecated and ultimately removed.
- Dev branches - The Dev prefix has been deprecated, but you may still see some dev branches around.
The new branches will work to a fairly standard semantic versioning scheme - major.minor.patch:
-
Major: Anything can change, including:
- changes to machining behaviors
- changes that affect the semantics of existing JSON variables
- changes that require configuration files to revised
- e.g. polarity sense
- minor or patch level changes may also be included, but do not force a Major revision
-
Minor: Limited things can change, including:
- new machining or other features
- new JSON objects can be added
- new JSON tags can be added to existing objects
- ...as long as they do not change the semantics of existing attributes
- new values to existing objects
- patch level changes may also be included, but do not force a Minor revision
-
Patch: bug fixes:
- may change erroneous behavior but not "enhancement" bugs
Perhaps this doesn't belong here, and will move somewhere else, but it's a topic of general interest and is related.
Once the new branching and versioning is in place a merged branch labeled 1.0.0
will be pushed. This combines the work that has been done on edge (the ARM M3 code base) with the work done in the ARM M7 code base. They will then be a single code base with the ARM chip being selected by the board hardware.
This section lists the changes that may be incompatible with previous releases (either branch). This is an attempt to get these all together for the 1.0.0 release and take the hit at one time.
Proposed changes to IDs:
- {fv:n} string in form Major.Minor.Patch, e.g.
1.0.0
, not a float - {fb:n} string with ShortSha, e.g.
49b671a
, not a float
The following remain the same:
- {fbc:n} settings file - e.g. settings_axidraw_v3.h
- {hp:n} board platform string - e.g. gQuintic
- {hv:n} board version string - e.g. revF
- {id:n} board ID string - e.g. 0271-6fd3-e29c-14d
All polarities now obey 0=ACTIVE_HI (non-inverted polarity), 1=ACTIVE_LO (inverted polarity). This changes:
- Coolant
- {comp:n} coolant mist polarity - 0=active HI, 1=active LO
- {cofp:n} coolant flood polarity - 0=active HI, 1=active LO
- Spindle
- {spep:n} spindle enable polarity - 0=active HI, 1=active LO
- {spdp:n} spindle direction polarity - 0=clockwise HI, 1=clockwise LO
The following remain the same:
- Motor direction polarity {1po:n}
- Motor enable polarity {1ep:n}
- Motor step polarity {1ep:n}
The current motor enable {me:n} and disable {md:n} commands function as so: *
Getting Started Pages
- Home
- What is g2core?
- Who uses g2core?
- Jerk-Controlled Motion
- Getting Started with g2core
- Connecting to g2core
- Configuring g2core
- Flashing g2core
- Troubleshooting
Reference Pages
- Gcodes
- Mcodes
- Text Mode
- JSON Communications
- GPIO Digital IO
- Alarms & Exceptions
- Power Management
- Coordinate Systems
- Status Reports
- Status Codes
- G2 Communications
- Tool Offsets and Selection
- Probing
- Feedhold, Resume, Job Kill
- Marlin Compatibility
- 9 Axis UVW Operation
- gQuintic Specs
Discussion Topics
- Roadmap
- GPIO for 1.X Releases
- Toolheads
- Raster Streaming Prototol
- g2core REST Interface
- Gcode Parsing
- G2 3DP Dialect
- Consensus Gcode
- Digital DRO
- Overview of Motion Processing
Developer Pages
- Development & Contribution
- Branching and Release - DRAFT
- Getting Started with g2core Development
- Project Structure & Motate
- Compiling G2
- OSX w/Xcode
- OSX/Linux Command Line
- Windows10 w/AtmelStudio7
- Debugging G2 on OSX
- Board and Machine Profiles
- Arduino Due Pinout
- Arduino DUE External Interfaces
- Diagnostics
- Debugging w/Motate Pins
- Development Troubleshooting
- g2core Communications
- Git Procedures
- Windows 10 / VMware 8 Issues
- Dual Endpoint USB Internals
- G2core License
- VSCode Setup
- Compatibility Axioms
- Wiki History