Ce soir, il y a la 8ème édition du Paris Time Series Meetup sur AWS TimeStream.
scp file destination:/path/to/file
? La commande scp est victime de nombreuses failles. Du coup, elle va être dépréciée. Néanmoins une initiative vise à maintenir uen commande scp
mais se fondant sur sftp
et son modèle de sécurité.Pour ceux sous Fedora et utilisant podman en alternative au binaire docker, pour se connecter à la registry google (via):
gcloud auth print-access-token | podman login -u oauth2accesstoken --password-stdin gcr.io
Des nouvelles du Paris Time Series Meetup : l’éditions 6 sur TimescaleDB et l’édition 7 sur QuestDB
include
et extends
sont déjà sympathiques, les anchors
ont l’air de faire des choses intéressantes aussi !Sur la base des informations disponibles pour le moment :
Pour les moins bons côtés :
Une solution a priori très orienté pour du monitoring et qui semble souffir des mêmes travers qu’InfluxDB avec InfluxQL et pourtant en passe d’être résolus avec Flux.
On devrait en parler plus en détail dans une prochaine édition du Paris Time Series Meetup avec des personnes de chez AWS ;-)
Les “conventional commits” apportent une formalisation des messages de commit git. Ils sont de la forme :
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Pour reprendre quelques exemples :
# Commit message with no body
feat: allow provided config object to extend other configs
# Commit message with scope
feat(lang): add polish language
# Commit message with ! to draw attention to breaking change
refactor!: drop support for Node 6
# Commit message with both ! and BREAKING CHANGE footer
refactor!: drop support for Node 6
BREAKING CHANGE: refactor to use JavaScript features not available in Node 6.
En forçant ce formalisme, le développeur est un peu moins tenté d’avoir un historique de commit du style :
fix button
typo
add some tests
add some tests
...
Au lieu de faire un commit à chaque sauvegarde du fichier ou presque, il va commencer à “raconter une histoire” :
fix: button on home page does not work on IE6
docs: typo in the README file
feat: add some tests for module XXX
Cela a le mérite aussi de générer un changelog plus agréable à lire. Si en plus, on rajoute par ex un identifiant de ticket, on peut alors facilement retracer l’historique d’un changement et sa raison d’être :
fix(123): button on home page does not work on IE6
docs(211): typo in the README file
feat(175): add some tests for module XXX
Un peu à la manière de “Properly managing your .gitignore file”, on peut vouloir que le hook git s’applique à tous nos dépôts présents et à venir et ne pas avoir à contribuer le hook à chaque dépôt git.
# Create ~/.git-templates/hooks
mkdir -p ~/.git-templates/hooks
# Create commit-msg file and make it executable
touch ~/.git-templates/hooks/commit-msg
chmod +x ~/.git-templates/hooks/commit-msg
Ajoutons ensuite notre hooks dans ~/.git-templates/hooks/commit-msg
:
#!/usr/bin/env python3
# Original source: https://github.com/prahladyeri/enforce-git-message/
# Extended with BREAKING CHANGE, exclamation mark support (!) and space before " : " for French people
import re, sys, os
examples = """+ 61c8ca9 fix: navbar not responsive on mobile
+ 479c48b test: prepared test cases for user authentication
+ a992020 chore: moved to semantic versioning
+ b818120 fix: button click even handler firing twice
+ c6e9a97 fix: login page css
+ dfdc715 feat(auth): added social login using twitter
+ b235677 BREAKING CHANGE: remove support for XXX
+ a234556 revert!: back to version X.Y.Z for component ZZZ
+ b123456 feat : we support space before : for French people :-)
"""
def main():
pattern = r'(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test|BREAKING CHANGE)(\([\w\-\s]+\))?!?\s?:\s.*'
filename = sys.argv[1]
ss = open(filename, 'r').read()
m = re.match(pattern, ss)
if m == None:
print("\nCOMMIT FAILED!")
print("\nPlease enter commit message in the conventional format and try to commit again. Examples:")
print("\n" + examples)
sys.exit(1)
if __name__ == "__main__":
main()
Il faut ensuite indiquer à git que vos templates sont dans ce dossier :
git config --global init.templatedir '~/.git-templates'
Pour les dépots git existants, il faut réinitialiser votre dépôt git :
cd /path/to/git/repo
git init
Dépôt Git existant réinitialisé dans /path/to/git/repo/.git/
Vous pouvez alors commencer à travailler dans votre repo et valider le bon fonctionnement du hook.
~/.config/git/ignore
pour y mettre votre configuration personnelle (IDE, OS, etc) et limiter le .gitignore
de vos projets aux éléments de build & co.Restez informé(s) de notre actualité en vous abonnant au flux du blog (Atom)