Versions (par Olivier Delhomme)

Versions (par Olivier Delhomme)

Presented by Olivier Delhomme at SysadminDays #8 (https://sysadmindays.fr)

415efaa445ed983307231341eaa4be55?s=128

Renaud Chaput

October 19, 2018
Tweet

Transcript

  1. Versions a project to check versions. . . or version

    change tracking by Olivier Delhomme 2018 10 19
  2. Is there any {} in the room ? developers

  3. Is there any {} in the room ? developers administrators

  4. Is there any {} in the room ? developers administrators

    packages managers
  5. How do you check version change ? for the libraries

    you use in your projects
  6. How do you check version change ? for the libraries

    you use in your projects for the puppet modules you use to manage your infrastructure
  7. How do you check version change ? for the libraries

    you use in your projects for the puppet modules you use to manage your infrastructure to integrate newest upstream versions in your repositories
  8. At first I wanted to be aware of new kanboard

    releases
  9. At first I wanted to be aware of new kanboard

    releases Everything is hard coded (even the project list to check)
  10. Hard coded things Hard coding is nice but. . .

  11. Hard coded things Hard coding is nice but. . .

    also hard to maintain
  12. Hard coded things Hard coding is nice but. . .

    also hard to maintain not beautiful : program = fguillot/kanboard version = get_latest_github_release(program) if version != : print( Latest version of %s is %s % (program, versi
  13. Hard coded things Hard coding is nice but. . .

    also hard to maintain not beautiful : program = fguillot/kanboard version = get_latest_github_release(program) if version != : print( Latest version of %s is %s % (program, versi => use of a YAML file
  14. First YAML format “Rigid” format with implicit things

  15. First YAML format “Rigid” format with implicit things github.com: is

    the name you must use to add github projects as a list below the name: github.com: - InfotelGLPI/manufacturersimports - fguillot/kanboard - curl/curl - akheron/jansson - Deltafire/MilkyTracker - terryyin/lizard - vmware/pyvmomi - tmux/tmux - tmuxinator/tmuxinator
  16. Hard coded things II Only checking:

  17. Hard coded things II Only checking: github.com

  18. Hard coded things II Only checking: github.com freshcode.club

  19. Hard coded things II Only checking: github.com freshcode.club Checking urls

    built from site’s name.
  20. Hard coded things II Only checking: github.com freshcode.club Checking urls

    built from site’s name. Two categories are needed:
  21. Hard coded things II Only checking: github.com freshcode.club Checking urls

    built from site’s name. Two categories are needed: Github is checked project by project
  22. Hard coded things II Only checking: github.com freshcode.club Checking urls

    built from site’s name. Two categories are needed: Github is checked project by project freshcode is a complete list of projects
  23. Encountered someone that said: “ Hey what about projects on

    sourceforge ? ”
  24. Hard coded things. . . Where you realize that urls

    are hardcoded into the project
  25. Hard coded things. . . Where you realize that urls

    are hardcoded into the project => put project url in the YAML file. . .
  26. Hard coded things. . . Where you realize that urls

    are hardcoded into the project => put project url in the YAML file. . . => needs a refactoring of the YAML file
  27. Hard coded things. . . Where you realize that urls

    are hardcoded into the project => put project url in the YAML file. . . => needs a refactoring of the YAML file Add a “projects” list
  28. Hard coded things. . . Where you realize that urls

    are hardcoded into the project => put project url in the YAML file. . . => needs a refactoring of the YAML file Add a “projects” list Then add an url with a {} where the project name should take place: github: url: "https://github.com/{}/releases.atom" projects: - InfotelGLPI/manufacturersimports - fguillot/kanboard ...
  29. Virtually any site ?? Versions has been tested with:

  30. Virtually any site ?? Versions has been tested with: github.com,

  31. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net,
  32. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club,
  33. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org,
  34. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org, savanah.gnu.org,
  35. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org, savanah.gnu.org, www.freshports.org (FreeBSD packages),
  36. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org, savanah.gnu.org, www.freshports.org (FreeBSD packages), fossies.org,
  37. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org, savanah.gnu.org, www.freshports.org (FreeBSD packages), fossies.org, repo.continuum.io,
  38. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org, savanah.gnu.org, www.freshports.org (FreeBSD packages), fossies.org, repo.continuum.io, Still to be tested with:
  39. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org, savanah.gnu.org, www.freshports.org (FreeBSD packages), fossies.org, repo.continuum.io, Still to be tested with: libraries.io
  40. Virtually any site ?? Versions has been tested with: github.com,

    sourceforge.net, freshcode.club, pypi.python.org, savanah.gnu.org, www.freshports.org (FreeBSD packages), fossies.org, repo.continuum.io, Still to be tested with: libraries.io Where you realize that some version control tools does not provide any convenient way to get releases.
  41. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

  42. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0
  43. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1
  44. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2
  45. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11
  46. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3
  47. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3 github.com/InfotelGLPI/manufacturersimports/releases’
  48. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3 github.com/InfotelGLPI/manufacturersimports/releases’ GLPI 9.1 : Version 1.9.1 disponible / available
  49. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3 github.com/InfotelGLPI/manufacturersimports/releases’ GLPI 9.1 : Version 1.9.1 disponible / available GLPI 9.2 : Version 2.0.0 disponible / available
  50. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3 github.com/InfotelGLPI/manufacturersimports/releases’ GLPI 9.1 : Version 1.9.1 disponible / available GLPI 9.2 : Version 2.0.0 disponible / available GLPI 9.3 : Version 2.1.0 disponible / available
  51. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3 github.com/InfotelGLPI/manufacturersimports/releases’ GLPI 9.1 : Version 1.9.1 disponible / available GLPI 9.2 : Version 2.0.0 disponible / available GLPI 9.3 : Version 2.1.0 disponible / available GLPI 9.3 : Version 2.1.1 disponible / available
  52. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3 github.com/InfotelGLPI/manufacturersimports/releases’ GLPI 9.1 : Version 1.9.1 disponible / available GLPI 9.2 : Version 2.0.0 disponible / available GLPI 9.3 : Version 2.1.0 disponible / available GLPI 9.3 : Version 2.1.1 disponible / available GLPI 9.3 : Version 2.1.2 disponible / available
  53. Versioning does not go straight forward sometimes. . . github.com/angular/angular/releases

    3 May 6.0.0 11 May 6.0.1 15 May 6.0.2 16 May 5.2.11 23 May 6.0.3 github.com/InfotelGLPI/manufacturersimports/releases’ GLPI 9.1 : Version 1.9.1 disponible / available GLPI 9.2 : Version 2.0.0 disponible / available GLPI 9.3 : Version 2.1.0 disponible / available GLPI 9.3 : Version 2.1.1 disponible / available GLPI 9.3 : Version 2.1.2 disponible / available => regex to filter out version to be printed such as: regex: \w+ [\d\.]+ : \w+ ([\d\.]+).*
  54. Jens Schleusener (fossies.org) begun to try Version discovered a huge

    number of bugs (now corrected)
  55. Jens Schleusener (fossies.org) begun to try Version discovered a huge

    number of bugs (now corrected) suggested new features and new behaviors (still some to work on)
  56. Jens Schleusener (fossies.org) begun to try Version discovered a huge

    number of bugs (now corrected) suggested new features and new behaviors (still some to work on) => entry: latest or entry: last checked (it may be a global parameter)
  57. Jens Schleusener (fossies.org) begun to try Version discovered a huge

    number of bugs (now corrected) suggested new features and new behaviors (still some to work on) => entry: latest or entry: last checked (it may be a global parameter) => ported regex to “list” type sites
  58. YAML list type site continuum.io: url: "https://repo.continuum.io/pkgs/rss.xml" type: list regex:

    [ad\s]*([\.\w\s-]+)\s([\d\.-]+\w*).* multiproject: ,|; projects: - pytorch - holoviews - pyopenssl
  59. YAML project type site github: url: "https://github.com/{}/releases.atom" type: byproject projects:

    - name: torvalds/linux regex: v([\d\.\-rRcC]+) - name: kanboard/kanboard regex: Kanboard Version\s([\d\.]+) - ovh/cds - glpi-project/glpi - name: nextcloud/server regex: v([\d\.\-rRcCbBeEtTaAlLpPhH]+)
  60. Thanks for listening Versioning is not so easy: github.com/dupgit/versions/releases

  61. Thanks for listening Versioning is not so easy: github.com/dupgit/versions/releases 5

    avril 2018 : v1.5.0
  62. Thanks for listening Versioning is not so easy: github.com/dupgit/versions/releases 5

    avril 2018 : v1.5.0 22 mai 2018 : v1.5.1: Version 1.5.1
  63. Thanks for listening Versioning is not so easy: github.com/dupgit/versions/releases 5

    avril 2018 : v1.5.0 22 mai 2018 : v1.5.1: Version 1.5.1 11 Juin 2018 : v1.5.2
  64. Thanks for listening Versioning is not so easy: github.com/dupgit/versions/releases 5

    avril 2018 : v1.5.0 22 mai 2018 : v1.5.1: Version 1.5.1 11 Juin 2018 : v1.5.2 https://github.com/dupgit/versions
  65. Thanks for listening Versioning is not so easy: github.com/dupgit/versions/releases 5

    avril 2018 : v1.5.0 22 mai 2018 : v1.5.1: Version 1.5.1 11 Juin 2018 : v1.5.2 https://github.com/dupgit/versions Have a look at https://semver.org/ !