Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Versions a project to check versions. . .
or
version change tracking by Olivier Delhomme
2018 10 19
Is there any {} in the room ?
developers
Is there any {} in the room ?
developers
administrators
Is there any {} in the room ?
developers
administrators
packages managers
How do you check version change ?
for the libraries you use in your projects
How do you check version change ?
for the libraries you use in your projects
for the puppet modules you use to manage your infrastructure
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
At first
I wanted to be aware of new kanboard releases
At first
I wanted to be aware of new kanboard releases
Everything is hard coded (even the project list to check)
Hard coded things
Hard coding is nice but. . .
Hard coded things
Hard coding is nice but. . .
also hard to maintain
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
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
First YAML format
“Rigid” format with implicit things
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
Hard coded things II
Only checking:
Hard coded things II
Only checking:
github.com
Hard coded things II
Only checking:
github.com
freshcode.club
Hard coded things II
Only checking:
github.com
freshcode.club
Checking urls built from site’s name.
Hard coded things II
Only checking:
github.com
freshcode.club
Checking urls built from site’s name.
Two categories are needed:
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
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
Encountered someone that said:
“ Hey what about projects on sourceforge ? ”
Hard coded things. . .
Where you realize that urls are hardcoded into the project
Hard coded things. . .
Where you realize that urls are hardcoded into the project
=> put project url in the YAML file. . .
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
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
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
...
Virtually any site ??
Versions has been tested with:
Virtually any site ??
Versions has been tested with:
github.com,
Virtually any site ??
Versions has been tested with:
github.com,
sourceforge.net,
Virtually any site ??
Versions has been tested with:
github.com,
sourceforge.net,
freshcode.club,
Virtually any site ??
Versions has been tested with:
github.com,
sourceforge.net,
freshcode.club,
pypi.python.org,
Virtually any site ??
Versions has been tested with:
github.com,
sourceforge.net,
freshcode.club,
pypi.python.org,
savanah.gnu.org,
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),
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,
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,
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:
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
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.
Versioning does not go straight forward sometimes. . .
github.com/angular/angular/releases
Versioning does not go straight forward sometimes. . .
github.com/angular/angular/releases
3 May 6.0.0
Versioning does not go straight forward sometimes. . .
github.com/angular/angular/releases
3 May 6.0.0
11 May 6.0.1
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
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
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
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’
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
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
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
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
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
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.]+).*'
Jens Schleusener (fossies.org) begun to try Version
discovered a huge number of bugs (now corrected)
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)
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)
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
YAML list type site
continuum.io:
url: "https://repo.continuum.io/pkgs/rss.xml"
type: list
regex: '[ads]*([.ws-]+)s([d.-]+w*).*'
multiproject: ',|;'
projects:
- pytorch
- holoviews
- pyopenssl
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 Versions([d.]+)'
- ovh/cds
- glpi-project/glpi
- name: nextcloud/server
regex: 'v([d.-rRcCbBeEtTaAlLpPhH]+)'
Thanks for listening
Versioning is not so easy:
github.com/dupgit/versions/releases
Thanks for listening
Versioning is not so easy:
github.com/dupgit/versions/releases
5 avril 2018 : v1.5.0
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
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
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
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/ !

More Related Content

Versions

  • 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: '[ads]*([.ws-]+)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 Versions([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/ !