gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

version.go (2366B)


      1 // Copyright 2019 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 // Package version records versioning information about this module.
      6 package version
      7 
      8 import (
      9 	"fmt"
     10 	"strings"
     11 )
     12 
     13 // These constants determine the current version of this module.
     14 //
     15 // For our release process, we enforce the following rules:
     16 //   - Tagged releases use a tag that is identical to String.
     17 //   - Tagged releases never reference a commit where the String
     18 //     contains "devel".
     19 //   - The set of all commits in this repository where String
     20 //     does not contain "devel" must have a unique String.
     21 //
     22 // Steps for tagging a new release:
     23 //
     24 //  1. Create a new CL.
     25 //
     26 //  2. Update Minor, Patch, and/or PreRelease as necessary.
     27 //     PreRelease must not contain the string "devel".
     28 //
     29 //  3. Since the last released minor version, have there been any changes to
     30 //     generator that relies on new functionality in the runtime?
     31 //     If yes, then increment RequiredGenerated.
     32 //
     33 //  4. Since the last released minor version, have there been any changes to
     34 //     the runtime that removes support for old .pb.go source code?
     35 //     If yes, then increment SupportMinimum.
     36 //
     37 //  5. Send out the CL for review and submit it.
     38 //     Note that the next CL in step 8 must be submitted after this CL
     39 //     without any other CLs in-between.
     40 //
     41 //  6. Tag a new version, where the tag is is the current String.
     42 //
     43 //  7. Write release notes for all notable changes
     44 //     between this release and the last release.
     45 //
     46 //  8. Create a new CL.
     47 //
     48 //  9. Update PreRelease to include the string "devel".
     49 //     For example: "" -> "devel" or "rc.1" -> "rc.1.devel"
     50 //
     51 //  10. Send out the CL for review and submit it.
     52 const (
     53 	Major      = 1
     54 	Minor      = 30
     55 	Patch      = 0
     56 	PreRelease = ""
     57 )
     58 
     59 // String formats the version string for this module in semver format.
     60 //
     61 // Examples:
     62 //
     63 //	v1.20.1
     64 //	v1.21.0-rc.1
     65 func String() string {
     66 	v := fmt.Sprintf("v%d.%d.%d", Major, Minor, Patch)
     67 	if PreRelease != "" {
     68 		v += "-" + PreRelease
     69 
     70 		// TODO: Add metadata about the commit or build hash.
     71 		// See https://golang.org/issue/29814
     72 		// See https://golang.org/issue/33533
     73 		var metadata string
     74 		if strings.Contains(PreRelease, "devel") && metadata != "" {
     75 			v += "+" + metadata
     76 		}
     77 	}
     78 	return v
     79 }