[DNT03] Em "3.3 Regras de desenvolvimento do modelo" o DTN03 não prevê a questão do PR, ele foca no P&D trabalhar direto na develop.
[DTN03] "Todo novo desenvolvimento, também chamado de requisito, nasce de interesses internos dos macro-grupos de P&D ou são requisitados a eles por usuários externos ao grupo. Os requisitos podem ser funcionais (RF), isto é, que alteram a funcionalidade e resultados do código, ou não funcionais (RNF)". Neste caso o PR se enquadra em nova funcionalidade
[DTN03] "O processo de pull request enquadra-se na categoria de melhoria ou aperfeiçoamento. Para definir em qual delas este se encaixa deve-se observar todas as informações fornecidas na requisição, se necessário manter conversações com os solicitantes e, em alguns casos, levar a requisição para controle das equipes de P&D para avaliar o código. Todo pull request já possui uma numeração que o identifica e esta deverá ser usada como tarefa principal (macro)."
[DTN03] "Para os pedidos de pull request não existe um REQ/US criado. Cabe então à gerência através do PO a criação de um RELA a partir dos dados obtidos no pull request." Criado RELA #530
[DTN03] "Uma primeira ação a ser considerada é a revisão de código. O Grupo de Revisão de Código (GRC) irá avaliar se o código presente no branch está adequado às regras (padrão) de codificação contidas no documento de padrão de codificação DTN 01." Não realizado
[DTN03] "o relatório RELA é atualizado informando que o código está em conformidade com o padrão e é enviado ao Grupo de Testes Automáticos (GTA) uma mensagem de request." Não realizado
[DTN03] "O grupo de PAD avalia o comportamento do código nas máquinas (computadores) disponíveis para teste, medindo seu desempenho, eficiência e escalabilidade (PEE)." Não realizado
[DTN03] "Em caso de aprovação o PAD gera uma nova versão (minor ou major release) e cria a versão beta. o PAD envia um relatório mensagem para a gerência e informa um novo código para testes de funcionamento. A gerência pode informar ao GAM para a realização de testes repassando conjuntamente o RELA." Não realizado
Ações após PR
Foi atribuído "reviewer" e "assignees" para a minha conta @joaomas e add label "pull request" no PR.
Orientação do GitHub para análise do PR.
Step 1: From your project repository, check out a new branch and test the changes.
O conflito se deu pois o PR foi feito antes da correção do bug pelo LF. Foi então alterado para a solução do LF.
Após solução o PR foi finalizado com sucesso, com o código do PR mergeado no Develop.
Cron EGEON
Antes de rodar o cron foi renomeado o arquivo /mnt/beegfs/monan/scripts_CD-CT_dev/scripts_CD-CT/datain/fixed/x1.1024002.static.nc para OLD para forçar a geração deste na etapa do pré. Após o arquivo foi removido.
O Cron DEV na Egeon atualizou com a nova versão do Dev.
MONAN branch name in use: develop
convert_mpas branch name in use: develop
[1;32m==>[0m Source dir already exists, updating it ...
Your branch is up to date with 'origin/develop'.
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:
git config pull.rebase false # merge (the default strategy)
git config pull.rebase true # rebase
git config pull.ff only # fast-forward only
You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.
From https://github.com/monanadmin/MONAN-Model
80c8ab3..667c0af develop -> origin/develop
Updating 80c8ab3..667c0af
Fast-forward
GF_ConvPar_nml | 122 +
Makefile | 4 +-
comp_instructions | 18 +
modif_v0.2_to_v0.6.md | 32 +
monan_readme.md | 64 +
src/core_atmosphere/Makefile | 4 +-
src/core_atmosphere/Registry.xml | 136 +-
.../diagnostics/mpas_isobaric_diagnostics.F | 2 +-
.../dynamics/mpas_atm_time_integration.F | 997 +-
src/core_atmosphere/mpas_atm_core.F | 2 +-
src/core_atmosphere/mpas_atm_halos.F | 15 +
src/core_atmosphere/physics/Makefile | 9 +-
src/core_atmosphere/physics/mpas_atmphys_control.F | 27 +-
src/core_atmosphere/physics/mpas_atmphys_driver.F | 25 +-
.../physics/mpas_atmphys_driver_cloudiness.F | 46 +
.../physics/mpas_atmphys_driver_convection.F | 703 +-
src/core_atmosphere/physics/mpas_atmphys_init.F | 2 +-
.../physics/mpas_atmphys_interface.F | 45 +-
.../physics/mpas_atmphys_packages.F | 9 +-
.../physics/mpas_atmphys_todynamics.F | 55 +-
src/core_atmosphere/physics/mpas_atmphys_vars.F | 30 +-
src/core_atmosphere/physics/physics_monan/Makefile | 41 +
.../physics/physics_monan/lib_module_cu_gf.monan.F | 1728 +++
.../physics/physics_monan/modConstants.F | 293 +
.../physics/physics_monan/modGate.F | 76 +
.../physics/physics_monan/modHenrysLawCts.F | 532 +
.../physics/physics_monan/modVector.F | 228 +
.../physics/physics_monan/module_cu_gf.monan.F | 11310 ++++++++++++++++
.../physics/physics_monan/module_mp_cldfra_cb.F | 353 +
.../physics/physics_monan/orig/modConvParGF.F90 | 13037 +++++++++++++++++++
.../physics/physics_monan/orig/modConvParGF.F90_IK | 12886 ++++++++++++++++++
.../physics/physics_monan/orig/modConvParGF.F90_KI | 13037 +++++++++++++++++++
.../physics_monan/utils_monan/modConstants.F90 | 293 +
.../physics/physics_monan/utils_monan/modGate.F90 | 76 +
.../physics_monan/utils_monan/modHenrysLawCts.F90 | 532 +
.../physics_monan/utils_monan/modVector.F90 | 228 +
src/core_init_atmosphere/Registry.xml | 5 +
37 files changed, 56921 insertions(+), 81 deletions(-)
create mode 100644 GF_ConvPar_nml
create mode 100644 comp_instructions
create mode 100644 modif_v0.2_to_v0.6.md
create mode 100644 monan_readme.md
create mode 100644 src/core_atmosphere/physics/physics_monan/Makefile
create mode 100644 src/core_atmosphere/physics/physics_monan/lib_module_cu_gf.monan.F
create mode 100644 src/core_atmosphere/physics/physics_monan/modConstants.F
create mode 100644 src/core_atmosphere/physics/physics_monan/modGate.F
create mode 100644 src/core_atmosphere/physics/physics_monan/modHenrysLawCts.F
create mode 100644 src/core_atmosphere/physics/physics_monan/modVector.F
create mode 100644 src/core_atmosphere/physics/physics_monan/module_cu_gf.monan.F
create mode 100644 src/core_atmosphere/physics/physics_monan/module_mp_cldfra_cb.F
create mode 100644 src/core_atmosphere/physics/physics_monan/orig/modConvParGF.F90
create mode 100644 src/core_atmosphere/physics/physics_monan/orig/modConvParGF.F90_IK
create mode 100644 src/core_atmosphere/physics/physics_monan/orig/modConvParGF.F90_KI
create mode 100644 src/core_atmosphere/physics/physics_monan/utils_monan/modConstants.F90
create mode 100644 src/core_atmosphere/physics/physics_monan/utils_monan/modGate.F90
create mode 100644 src/core_atmosphere/physics/physics_monan/utils_monan/modHenrysLawCts.F90
create mode 100644 src/core_atmosphere/physics/physics_monan/utils_monan/modVector.F90
[1;32m==>[0m Successfully checked out and updated: [01;34mdevelop
commit 667c0af257387e333122c9b2e0073d36e48129c3
Merge: 80c8ab3 1b3d680
Author: João Messias <41485190+joaomas@users.noreply.github.com>
Date: Wed Jun 5 10:51:49 2024 -0300
Merge pull request #7 from saulorfreitas/develop
Develop with the first MONAN atmos physics package.
Issue #509 (repo - monan).
Podemos trabalhar com Git Flow e Pull Request. Mas, isso não é gerenciado pelo plugin, quando o utilizamos. Tudo que vem das branches de melhoria (feature, bugfix etc) pode ser enviado para a develop via Pull Request, ao invés de um merge manual, até ai bem tranquilo. Assim conseguimos garantir que o time está revisando tudo que chega na branch develop.
Para a branch master, as coisas mudam um pouco. As branches que originam merges para a master (branches de “preparo de versão” — release e hotfix) também precisam fazer o merge para a develop. O processo para que PRs para a master funcione, basicamente consiste em, após o PR criado, aprovado e “mergeado” da release/hotfix para master, fazemos a finalização da release/hotfix normalmente pela linha de comando. Usando comandos do Git Flow, tudo funciona normal, e com comandos do Git podemos “pular” a etapa de merge com a master.
Em alguns times que utilizam processos semelhantes é possível observar a adoção apenas de pull request a partir de hotfix dado que todo código feito nessa branch não é validada e revisada em outra etapa. Branches de release são iniciadas a partir da develop, branch previamente validada.
"
"So, why don't we use git-flow at GitHub? Well, the main issue is that we deploy all the time. The git-flow process is designed largely around the "release". We don't really have "releases" because we deploy to production every day - often several times a day. We can do so through our chat room robot, which is the same place our CI results are displayed. We try to make the process of testing and shipping as simple as possible so that every employee feels comfortable doing it."
So, what is GitHub Flow?
Anything in the master branch is deployable
To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes)
Commit to that branch locally and regularly push your work to the same named branch on the server
When you need feedback or help, or you think the branch is ready for merging, open a pull request
After someone else has reviewed and signed off on the feature, you can merge it into master
Once it is merged and pushed to 'master', you can and should deploy immediately
There are multiple git pull request workflows to choose from in addition to the GitHub flow model described above, and each one offers unique advantages that might suit your team. However, at least one of these—the centralized workflow—can’t accommodate pull requests and should be avoided if you prefer to leverage such requests in your own project's history.
There are a few additional Git workflow models you might consider trying if you are planning on using pull requests, such as the afore-mentioned Gitflow model, the feature branch workflow model, and the forking workflow model. Each of these is great for certain applications and not so great for others. The forking model is particularly well-suited to open projects with many different collaborators, for instance, as repositories are neatly copied each time they’re forked."
1) Master branch is the production ready branch. Only the Team leader has permissions to write or merge on Master branch.
2) Before starting the next Iteration for the Sprint release, you can create a new Release branch 2.0 on the Remote Repo
3) Every developer will checkout from Release 2.0 branch before coding. Then create a new Feature branch based on Release branch.
4) Developer will do coding and commit on Local Repo - Feature branch
5) Developer will push the Local Repo Feature branch to Remote repo Feature branch
6) by this time, Bamboo build will trigger for the Remote - Feature branch - if Build pass then Pull request can be created
7) If build pass, Developer creates the Pull request and assign to Team leader for code review
8) Team leader will do the code review and merge Feature branch to Release branch - later the Bamboo build will trigger on Release branch
9) later the Feature branch will be deleted
10) after all Features are developed and merged, finally when the Release branch is stable and build is also pass.
11) QA team will do all testing on Release branch
12) if all pass on Release branch, Team leader will merge from Release branch to Master branch.
regards"
:rotating_light: Problemas encontrados
-.
:white_check_mark: Conclusão
A DTN03 esta escrita com base nos grupos P&D interno do INPE usando a própria branch 'develop' o conceito de fork ainda não estava contemplada no documento. As citações sobre Pull Request se enquadraria no uso comunitário.
A DTN03 também inclui sólidos testes do grupo GRC, GTA e PAD antes do aceite de uma nova funcionalidade, além do envio ao grupo GAM.
Informado ao Carlos Bastarz sobre esta issue e as documentações (convite para a participação da Daily).
PR Aceite após resolução dos conflitos e develop atualizado (executado no CRON na Egeon). Foi renomeado o arquivo
:people_holding_hands: User Story
COMO (...) QUEREMOS (...) PARA (...)
:clipboard: Critérios de aceite de conclusão da Issue
:pencil: Detalhamento adicional da atividade
:comet: Impactos
-.
:link: Dependências
504 - OK
:hammer_and_wrench: Solução
Analise da DTN-03 com o Pull Request
Ações após PR
Foi atribuído "reviewer" e "assignees" para a minha conta @joaomas e add label "pull request" no PR.
Orientação do GitHub para análise do PR.
Step 1: From your project repository, check out a new branch and test the changes.
git checkout -b saulorfreitas-develop develop git pull https://github.com/saulorfreitas/MONAN_Phys_SRF_v1.git develop
Step 2: Merge the changes and update on GitHub.
git checkout develop git merge --no-ff saulorfreitas-develop git push origin develop
O conflito se deu pois o PR foi feito antes da correção do bug pelo LF. Foi então alterado para a solução do LF.
Após solução o PR foi finalizado com sucesso, com o código do PR mergeado no Develop.
Antes de rodar o cron foi renomeado o arquivo /mnt/beegfs/monan/scripts_CD-CT_dev/scripts_CD-CT/datain/fixed/x1.1024002.static.nc para OLD para forçar a geração deste na etapa do pré. Após o arquivo foi removido.
O Cron DEV na Egeon atualizou com a nova versão do Dev.
Discussões sobre PR x GitFlow e PR
"Pull Request
Podemos trabalhar com Git Flow e Pull Request. Mas, isso não é gerenciado pelo plugin, quando o utilizamos. Tudo que vem das branches de melhoria (feature, bugfix etc) pode ser enviado para a develop via Pull Request, ao invés de um merge manual, até ai bem tranquilo. Assim conseguimos garantir que o time está revisando tudo que chega na branch develop.
Para a branch master, as coisas mudam um pouco. As branches que originam merges para a master (branches de “preparo de versão” — release e hotfix) também precisam fazer o merge para a develop. O processo para que PRs para a master funcione, basicamente consiste em, após o PR criado, aprovado e “mergeado” da release/hotfix para master, fazemos a finalização da release/hotfix normalmente pela linha de comando. Usando comandos do Git Flow, tudo funciona normal, e com comandos do Git podemos “pular” a etapa de merge com a master.
Em alguns times que utilizam processos semelhantes é possível observar a adoção apenas de pull request a partir de hotfix dado que todo código feito nessa branch não é validada e revisada em outra etapa. Branches de release são iniciadas a partir da develop, branch previamente validada. "
"So, why don't we use git-flow at GitHub? Well, the main issue is that we deploy all the time. The git-flow process is designed largely around the "release". We don't really have "releases" because we deploy to production every day - often several times a day. We can do so through our chat room robot, which is the same place our CI results are displayed. We try to make the process of testing and shipping as simple as possible so that every employee feels comfortable doing it."
So, what is GitHub Flow?
Anything in the master branch is deployable
To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes)
Commit to that branch locally and regularly push your work to the same named branch on the server
When you need feedback or help, or you think the branch is ready for merging, open a pull request
After someone else has reviewed and signed off on the feature, you can merge it into master
Once it is merged and pushed to 'master', you can and should deploy immediately
Comparing Git workflows: What you should know - https://www.atlassian.com/git/tutorials/comparing-workflows
Understanding the GitHub Pull Request - https://blog.mergify.com/understanding-the-github-pull-request-workflow/
"Choosing a Git pull request workflow
There are multiple git pull request workflows to choose from in addition to the GitHub flow model described above, and each one offers unique advantages that might suit your team. However, at least one of these—the centralized workflow—can’t accommodate pull requests and should be avoided if you prefer to leverage such requests in your own project's history.
There are a few additional Git workflow models you might consider trying if you are planning on using pull requests, such as the afore-mentioned Gitflow model, the feature branch workflow model, and the forking workflow model. Each of these is great for certain applications and not so great for others. The forking model is particularly well-suited to open projects with many different collaborators, for instance, as repositories are neatly copied each time they’re forked."
GitFlow x GitHub Flow - https://www.split.io/blog/github-flow-vs-git-flow-whats-the-difference/
Pull request workflow - https://nulab.com/learn/software-development/git-tutorial/git-collaboration/reviewing-changes/pull-requests-workflow/
"Manoj Shetty March 26, 2014
Hi,
One workflow for this problem can be:
1) Master branch is the production ready branch. Only the Team leader has permissions to write or merge on Master branch.
2) Before starting the next Iteration for the Sprint release, you can create a new Release branch 2.0 on the Remote Repo
3) Every developer will checkout from Release 2.0 branch before coding. Then create a new Feature branch based on Release branch.
4) Developer will do coding and commit on Local Repo - Feature branch
5) Developer will push the Local Repo Feature branch to Remote repo Feature branch
6) by this time, Bamboo build will trigger for the Remote - Feature branch - if Build pass then Pull request can be created
7) If build pass, Developer creates the Pull request and assign to Team leader for code review
8) Team leader will do the code review and merge Feature branch to Release branch - later the Bamboo build will trigger on Release branch
9) later the Feature branch will be deleted
10) after all Features are developed and merged, finally when the Release branch is stable and build is also pass.
11) QA team will do all testing on Release branch
12) if all pass on Release branch, Team leader will merge from Release branch to Master branch.
regards"
:rotating_light: Problemas encontrados
-.
:white_check_mark: Conclusão
:spiral_calendar: Trabalhos Futuros
-.