Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Study : how do we transition to mono-repo ? #958

Closed
estellecomment opened this issue Apr 2, 2024 · 2 comments
Closed

Study : how do we transition to mono-repo ? #958

estellecomment opened this issue Apr 2, 2024 · 2 comments
Labels
P1 Priority 1

Comments

@estellecomment
Copy link
Contributor

estellecomment commented Apr 2, 2024

Can we build with the mono-repo ?

Make the change, but allow ourselves to back out easily.

  • keep patches.json up to date for new modifs (not necessary to generate the actual patch)
@estellecomment estellecomment added the P1 Priority 1 label Apr 2, 2024
@MarcWadai
Copy link
Contributor

Currently, studying the idea of submodule or subtree using our fork of matrix-react-sdk

@MarcWadai
Copy link
Contributor

Quelques avantages du mono-repo avec subtree d'un fork de matrix-react-sdk :

  • on ne maintient plus des patches mais un fork
  • On ne maintient plus de scripts de patches fait maintien → on ne dépends plus non plus du package patch-package et de ses éventuelles changements
  • La relecture de PR est plus simple
  • Au niveau du mainlining c’est a peu près le même travail qu’auparavant, sauf qu’au lieu de s’occuper du merge de patches, on merge le fork.
  • facilité d’ouverture de PR vers element grâce au format du fork

Les commandes d'initialisation du mono-repo :

cd tchap-web-v4

// this will create a matrix-react-sdk-tchap directory in which it will pull the code from our fork
// we put the code in a new directory linked-dependencies, like this we keep the same level of relative path to the original yarn-linked-dependencies
git subtree add --prefix linked-dependencies/matrix-react-sdk https://github.com/tchapgouv/matrix-react-sdk-tchap develop_tchap --squash

// Change package.json
// remove postinstall patches script

// Remove dependencies on matrix sdk
yarn remove matrix-react-sdk

// change matrixreact-sdk dependencies to
// our fork is named matrix-react-sdk-tchap, so we use an alias in tchap-web in order to use only matrix-react-sdk as package name
yarn add matrix-react-sdk@"./linked-dependencies/matrix-react-sdk"


// remove previous link in case its still here
yarn unlink matrix-react-sdk

// rerun install to make the dependencies are correct
yarn install

// Fro now our fork doesnt contain codes from tchap, but is only a replicate of v3.95.0
// I am having trouble making a patch on the package since its not targeing the correct directory of my matric-react-sdk eventhough the one specify in the package.json is the local 
// So i applied the patches to the node_modules repo and copy paste the updated files to my linked-dependencies/matrix-react-sdk

Commit all the changes

// update the subtree remote
git subtree push --prefix linked-dependencies/matrix-react-sdk [email protected]:tchapgouv/matrix-react-sdk-tchap.git develop_tchap

Les principaux changement dans le code

  • Il n'y a plus l'utilisation de patches, donc on fait directment les changements dans le code subtree
  • Ne pas oublier de temps en temps updater le upstream du subtree
  • Le build webpack utilise le subtree au lieux du node_modules/matrix-react-sdk
  • Certains call en dur du chemin vers node_modules ont été modifié pour utiliser le subtree
  • Si l'on veut ouvrir une PR vers element, il suffit de cherrypicker nos changement contre une nouvelle branche de notre fork avec comme base le upstream d'element. Ou s'il y a plusieurs commit, simplement les copier coller sur cette branche

Les principaux changements du workflow de dev par rapport a avant :

  • Lors d'un upgrade, il faut d'abord upgrader la bonne version de matrix-react-sdk dans notre fork
  • Plus besoin de merger et upgrader les patches
  • Puis upgrader tchap-web sur la version d'element
  • Enfin, pull les changements du subtree (avec la bonne version du sdk donc) dans tchap-web

@MarcWadai MarcWadai moved this from En étude to sprint en cours - WIP in Roadmap Produit Apr 16, 2024
@MarcWadai MarcWadai moved this from sprint en cours - WIP to Beta interne in Roadmap Produit Apr 17, 2024
@MarcWadai MarcWadai moved this from Beta interne to beta externe in Roadmap Produit Apr 29, 2024
@github-project-automation github-project-automation bot moved this from beta externe to déployé en prod in Roadmap Produit Apr 30, 2024
@MarcWadai MarcWadai moved this from déployé en prod to beta externe in Roadmap Produit Apr 30, 2024
@MarcWadai MarcWadai moved this from beta externe to déployé en prod in Roadmap Produit May 6, 2024
@MarcWadai MarcWadai moved this from déployé en prod to done in Roadmap Produit May 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 Priority 1
Projects
Archived in project
Development

No branches or pull requests

2 participants