Mat Posted August 19, 2014 Share Posted August 19, 2014 (edited) Semantic versioning (SemVer) is a style of version numbers that defines more precisely the version numbering format. The official specification can be found at semver.org. In summary, version numbers consist of Major version, minor version and patch (in the normal 1.2.3 form). Major version changes indicate what AutoIt would call "script breaking" changes. Minor versions add functionality, and patches fix bugs. In addition, semantic versioning allows for pre-release tagging, so rather than a beta cycle that goes 1.3.1, 1.3.2, 1.3.3 etc, before a release of 1.4.0 you'd have 1.4.0-beta1, 1.4.0-beta2 etc. Builds can also contain metadata, so a full version string could be "1.4.0-beta2+compatibilitybuild" or something along those lines. The cool bit is conditions. This means you can write the normal dependency strings and compare versions against them. For example ">1.2.1 <=1.2.3" matches any of 1.2.1, 1.2.2, 1.2.3 and any pre-releases of 1.2.2 or 1.2.3 (but not pre-releases of 1.2.1). You can also match like "=1.2.*" or match according to versions that are compatible, or reasonably close. The api is very similar to how it is used in other languages. Npm has its library here, which has a good description of the types of comparisons. The examples on that page are the basis for most of the unit tests. SemVer.au3Fork me on Github Thanks to Manadar for some of the unit tests, and Assert() function taken from his assert.au3. As a final note, AutoIt does not use semantic versioning, and a version number with 4 parts will not match as being valid under this system. Semver in other languages: .NET, Node.js, Ruby, PHP, Go, Java, Python, you get the idea. Basically search github and you'll find a compatible library in any language. comparison based on pre-release tags isn't implemented yet, though is defined by the standard. Edited August 26, 2014 by Mat jvanegmond 1 AutoIt Project Listing Link to comment Share on other sites More sharing options...
jvanegmond Posted August 19, 2014 Share Posted August 19, 2014 Nice to see you making this publicly available. Why not put it on your Github though so I can fork it and make pull requests? github.com/jvanegmond Link to comment Share on other sites More sharing options...
Mat Posted August 19, 2014 Author Share Posted August 19, 2014 au3-semver on github. I'll update links in the first post to point there instead so it stays up to date. I was planning on doing a bit more with it, some more testing and making it less strict in the strings it accepts. I haven't had the time though so thought I'd just release it instead. AutoIt Project Listing Link to comment Share on other sites More sharing options...
stealthmsgr Posted September 17, 2015 Share Posted September 17, 2015 Thanks for posting this. I am presenting this in consideration of a versioning issue that is in review. Link to comment Share on other sites More sharing options...
guinness Posted September 17, 2015 Share Posted September 17, 2015 Cheers @Mat UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now