From d9ba8f52ac8788aeadfc3cf7ff529300f271cb3d Mon Sep 17 00:00:00 2001 From: Camille Dupont Date: Thu, 28 Oct 2021 23:51:04 +0200 Subject: [PATCH] release 0.4.8 --- README_INTERNAL.md | 156 --------------------------------------------- TODO_INTERNAL.md | 52 --------------- 2 files changed, 208 deletions(-) delete mode 100644 README_INTERNAL.md delete mode 100644 TODO_INTERNAL.md diff --git a/README_INTERNAL.md b/README_INTERNAL.md deleted file mode 100644 index 246b4a2..0000000 --- a/README_INTERNAL.md +++ /dev/null @@ -1,156 +0,0 @@ -**ATTENTION :** this document is internal and must not be published on the github ! -The public documentation must be in the [README.md](./README.md). -The list of planned code modifications/corrections are in [TODO_INTERNAL.md](./TODO_INTERNAL.md). This file must also stay internal and not be published on the github ! - -Document content : - -[[_TOC_]] - -# Organisation/repository management -## opensource version published on github -- [repository](https://github.com/pixano/pixano-app) opensource under licence [CeCILL-C](./LICENSE.txt) -- contains all modules and codes from SoTA -- version tags : vX.Y.Z -- **never push directly on the github !** You must always go through pull-requests to secure and generate traffic (see [procedure](#procedure-de-publication)). - -## internal version published on our gitlab -### remote github branch -- this branch is a local copy of the github repository **forké**. It is only used to prepare and do publications (or more rarely to retrieve github code if it is ahead on the gitlab master). -- for each new version to publish on the github : - - you prepare it on this branch - - you test it on this branch - - you tag it on this branch - - you push it on your forked github before doing a oull-request on the original repository (see [detailed procedure](#procedure-de-publication)) -### master branch -- default branch to retrieve for all new user -- version the most up-to-date, it contains, more than the github functionnalities, all smart functions usable internally and with our partners -- regroup "regularly" the project novelties (except for porjet code which stay proprietary for given company) -- version tags : viX.Y.Z -### other branches -- one branch per project (industrial, thesis, internship) -- each branch comes from master -- all functionnalities or corrections mature enough are push "regularly" on the master (merge or cherry-pick depending on the case) -- at the end of the project, the branch is fused with the master -- version tags (if appropriate) : vipX.Y.Z or specific tag for the partner (eg. vipX.Y.Z_arcure, vipX.Y.Z_valeo, etc) - -### schematically : -``` -github gitlab ------- --------------------------------------- - <--merge--> p1 -master <------push------ github <--merge-- master <--merge--> p2 - <--merge--> p2 - ... -``` - -## particular case of a repository which must be in tuleap -- the developments linked to the project are done on the tuleap by both the cea and the partners -- push "regularly" novelties from tuleap to the project branch in gitlab -- push "regularly" novelties from the gitlab to the tuleap depending on the need, procedure : - 1. push tuleap to gitlab (project) - 2. merge gitlab master and project branches - 3. push gitlab (project) to tuleap - -*We mean by "regularly" : every about 6 months, ideally in september and january. You are of course free to do these merges more often.* - ---------------------- - - -# A) Open-source publication procedure -## 1. Prerequisite (only the first time) -#### have a github account and fork -- create a [github](https://github.com) $MYACCOUNT account -- create a fork of the [original repository](https://github.com/pixano/pixano-app) -#### initialize the repository remote branch - git remote add upstream git@github.com:$MYACCOUNT/pixano-app.git - git fetch upstream - git checkout -b github upstream/master - -## 2. On github: Update your fork -- on your fork github (on github.com), click on "Fetch upstream", then "Fetch and merge" - -## 3. Locally: Prepate the publication - # make sure the repositories are up-to-date - git fetch - git fetch upstream - git checkout github - # integrate our modifications to the github branch - # a few usage examples with cherry-pick : - # import of the commit number d5e075f2 : - git cherry-pick d5e075f2 - # import of all commits from b4cb0b18 to d5e075f2 both included: - git cherry-pick b4cb0b18^..d5e075f2 - # import of all commits from cfbb3866 (not included) to 74e276acb: - git cherry-pick cfbb3866..74e276acb : - -During the merge / before commiting, **do not include / delete files and internal/proprietary codes** : - -- do not include the present file [README_INTERNAL.md](./README_INTERNAL.md), nor the .gitlab-ci.yml -- do not include the folder [doc_interne](./doc_interne) -- do not include the files with tag "proprietary" -- do not include with code blocks surrounded by tag "proprietary" - -### 4. Verify and validate code -#### clean and recompilation "from scratch" - # clean - rm -rf node_modules - rm package-lock.json frontend/package-lock.json - # compilation - npm i - npm run installApp - npm run buildApp -#### verify "by hand" - node server/server.js data-test/ - -## 5. Publish -#### 1. push - VERSION=0.4.17 - #update the publication version in the package.json - git add package.json - git commit -m "release $VERSION" - git tag -m "v$VERSION" "v$VERSION" - # push modifications on the fork - git push upstream github:master --follow-tags - - - - - -#### 2. pull-request -The rest is on [github](https://github.com) : - -- on the fork $MYACCOUNT : onglet "Pull requests" => "New pull request" => "Create pull request" => "Create pull request" -- automatic verifications are made by github -- on the pixano account : got to "Merge pull request" => "Confirm merge" -#### 3. release -Transform the tag in github release (makes the last tag more visible and detailed) : - - - - - - - - - go to the page in [release](https://github.com/pixano/pixano-app/releases) - - button "Draft a new release" - - "Tag version" vX.Y.Z - - in "Release title", put the version vX.Y.Z - - complete the comments - - To easily list the commits and descriptions : - git log v0.5.15..v0.5.16 --oneline - - "Publish release" - -#### 4. push on docker hub - # login (if not already logged) - docker login --username pixano --password ***** - # build docker image - sudo docker build -t pixano/pixano-app:$VERSION . - sudo docker tag pixano/pixano-app:$VERSION pixano/pixano-app:latest - # make sure it built correctly - cd data-test/ - sudo docker run -it --rm -v "$PWD":/data --network host pixano/app:$VERSION - cd ../ - # push to docker hub - sudo docker push pixano/pixano-app:$VERSION - sudo docker push pixano/pixano-app:latest - diff --git a/TODO_INTERNAL.md b/TODO_INTERNAL.md deleted file mode 100644 index 95a0a3f..0000000 --- a/TODO_INTERNAL.md +++ /dev/null @@ -1,52 +0,0 @@ -Ce fichier contient la liste des modifications/corrections prévues dans ce code. Ce fichier doit rester interne et ne pas se retrouver sur le github. - -#Tags : -- [#interface] : modification concernant l'interface utilisateur : la visualisation, les boutons, etc -- [#bug] : bogue - - [#firefox] : bogue lié uniquement à firefox -- [#feature] : nouvelle fonctionnalité / complément à une fonctionnalité existante -- [#doc] : besoin en documentation - - -# AFAIRE : -- [ ] [#doc] mise à jour de la procédure de livraison : idem elements -- [ ] [#doc] ajouter un test d'import/export dans la procédure avant livraison -- [ ] [#interface] quand on importe, il faudrait une boite de dialogue pour demander si on veut fusionner avec la base existante ou créer une nouvelle (actuellement, si on sélectionne une tâche il ajoute les imports avec des '-1', si on est sur "new task" il fusionne) -- [x] [#feature] ajout d'un textfield comme choix, en plus des checkbox et dropdown -- [ ] [#bogue] segmentation : mes modifs union/substract ne fonctionnent pas dans l'app -- [ ] [#bogue] l'affichage n'est pas le même (boutons manquants) quand on appuie sur le bouton image dans la liste par rapport à un appui sur les "start *" -- [ ] [#feature] possibilité pour l’annotateur de passer à l’image suivante sans la valider (abandon) -- [ ] [#interface] quand on a l'interface sombre, les properties ne ressortent pas => il faudrait les mettre sur un fond coloré ou blanc ou alotrs modifier leur couleur : blanc si fond sombre par ex. -- [-] [#bogue #firefox] les propriétés sous forme de checkbox ne fonctionnent pas (uniquement sous firefox) : - - ils reprennent la valeur par défaut si on passe à une annotation de classe différente puis qu'on y revient - - si on modifie la valeur sur une boite, c'est propagé à toutes les autres boites de même classe sur lesquelles on clique -- [-] [#bogue #firefox] quand on édite les annotations, puis qu'on crée de nouveau sur la même image, les propriétés restent celles de la dernière annotation modifiée (et on la modifie donc) (uniquement sous firefox) -- [ ] [#bogue] pour modifier une tâche il faut créer une nouvelle tâche, puis revenir dessus... Action à déterminer -- [o] [#feature] affichage sous forme d’imagettes plutôt qu’une liste - - [x] [#feature] création des imagettes et intégration dans la liste de fichiers - - [ ] [#feature] généralisation des imagettes à toutes les formes de fichiers en entrée -- [ ] [#feature] affichage sous forme d'un mur d'imagette + étiquetage rapide directement sur le mur - - possibilité de n'afficher dans ce mur qu'une sous-sélection grâce aux filtres dans la liste -- [ ] [#bogue] le REJECT ne fonctionne pas (firefox sur rectangle sans annotation dans l'image) -- [ ] [#bogue] après une sélection via un filtre, on reste sur la même page d'affichage, mais s'il n'y a plus autant d'images à afficher => il faudrait revenir à 0 -- [ ] [#bogue] quand on clique sur l'affichage d'image après avoir filtré une partie du contenu, il ne fait rien (image vide ou image précédente s'il y en avait une -- [ ] [#feature] possibilité de prendre en compte une modification de la base de données images => bouton "refresh database" ? - -- [ ] [#feature] revoir les rôles : - - [ ] [#feature] possibilité d'utiliser des annotations multiples et concurrente et valider par consensus plutôt que d'avoir un validateur - - [ ] [#feature] séparation complète des tâches d'admin qui ne devrait ni annoter, ni valider - - [ ] [#feature] annotateurs à compétence différenciée, par ex : les annotateurs de niveau 1 font les BB autour des voitures, les annotateurs de niveau 2 complètent les marques et modèles - -- [ ] [#feature] avoir des tags test/train/validation et pouvoir segmenter la base en fonction (en lien avec l’intégration de Semfeat ?) -- [ ] [#feature] intégration Semfeat/Élise - -- [ ] [#interface] à la création d'une nouvelle tâche, il faudrait pouvoir décider si on souhaite étiqueter en mode shuffle (par défaut) ou linéaire (en suivant le nom des fichiers) -- [ ] [#interface] add an error message when creating task/dataset in a path which does not exist - - -- points à valider : - - [ ] [#feature] possibilité de ne pas annoter tous les keypoints (non visibles) ? - - [ ] [#feature] commencer par mettre les images en visu et ne plus mettre nécessairement toutes les images en to_annotate par défaut => il faut pouvoir sélectionner une partie de la base de donnée facilement pour l'étiquetage - - [ ] [#feature] possibilité de sélectionner plusieurs éléments pour leur donner des caractéristiques communes ? - - [ ] [#feature] passerelle Mturk / Amazon SageMaker -