MCPcopy Create free account
hub / github.com/Masterminds/semver / validateVersion

Function validateVersion

version.go:777–825  ·  view source on GitHub ↗

validateVersion checks for common validation issues but may not catch all errors

(m []string)

Source from the content-addressed store, hash-verified

775
776// validateVersion checks for common validation issues but may not catch all errors
777func validateVersion(m []string) error {
778 var err error
779 var v string
780 if m[1] != "" {
781 if len(m[1]) > 1 && m[1][0] == '0' {
782 return ErrSegmentStartsZero
783 }
784 _, err = strconv.ParseUint(m[1], 10, 64)
785 if err != nil {
786 return fmt.Errorf("error parsing version segment: %w", err)
787 }
788 }
789
790 if m[2] != "" {
791 v = strings.TrimPrefix(m[2], ".")
792 if len(v) > 1 && v[0] == '0' {
793 return ErrSegmentStartsZero
794 }
795 _, err = strconv.ParseUint(v, 10, 64)
796 if err != nil {
797 return fmt.Errorf("error parsing version segment: %w", err)
798 }
799 }
800
801 if m[3] != "" {
802 v = strings.TrimPrefix(m[3], ".")
803 if len(v) > 1 && v[0] == '0' {
804 return ErrSegmentStartsZero
805 }
806 _, err = strconv.ParseUint(v, 10, 64)
807 if err != nil {
808 return fmt.Errorf("error parsing version segment: %w", err)
809 }
810 }
811
812 if m[5] != "" {
813 if err = validatePrerelease(m[5]); err != nil {
814 return err
815 }
816 }
817
818 if m[8] != "" {
819 if err = validateMetadata(m[8]); err != nil {
820 return err
821 }
822 }
823
824 return nil
825}

Callers 1

NewVersionFunction · 0.85

Calls 2

validatePrereleaseFunction · 0.85
validateMetadataFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…