Giter Site home page Giter Site logo

Comments (6)

licarth avatar licarth commented on July 21, 2024

About merging front and backend. (not zoapp for now, no libs)

Benefits

saves precious development time

  • avoid .circleci/config.yaml duplication.
  • make PR / changes easier and easier to test (proper e2e testing)
  • easier management of certificates, and allows wildcard certificates in an easy-ish way.
  • de-duplicates ingress.yaml
  • de-duplicates README.md
  • makes dev onboarding simpler
  • removes the necessity for an infra branch in opla/opla.
  • allows easy preview deployments of Pull Requests (link added by a bot in the comments)

makes the app easier to install for users/admins

  • allows a single point of entry for someone who wants to deploy opla as an application (who wants only the backend or only the front)

Risks

1 commit for 2 releases. Beware of downtime due to api changes. Every change should be retrocompatible with the previous version(s), between backend and front.
--> good news is that we could automate that testing against version n-1 and/or n-2 of the backend or of the frontend if this becomes a problem, since we have a single repo.

How to proceed

Preparation Phase

  • Try it with 2 given commits from front and backend. Fix all the myke.yaml and circleci configs.
  • deploy to a singlerepo namespace.
  • communicate about changes (show the example repo that deploys to a test namespace)
  • Close as many PRs as possible and warn that they will need to be moved.
  • Copy issues from front and back to opla

Real transition (to do at night or over the weekend)

  • Update code from backend and front with an approach that keeps git history (see https://stackoverflow.com/a/10548919)
  • Really deploy to qa, preprod, prod.
  • Redirect users from Opla/front and Opla/backend without removing the code.

from opla-v2.

licarth avatar licarth commented on July 21, 2024

About commit history

The tricky point is not about moving the code into a single repo, but is about moving the code into subfoldlers (front/ and backend/)

  • Commits and SHAs will not get lost and stay the same :
    https://github.com/Opla/backend/commit/d3ea8cb1e159a57823df791dd62323649d5df080
    becomes https://github.com/Opla/opla/commit/d3ea8cb1e159a57823df791dd62323649d5df080.
  • Rollback to a point before the merging of the repos will no longer be possible. (which is an argument for doing it early)
  • Clicking on History will only show history since the repo merge. This is because github executes git log instead of git log --follow. Gitlab does use --follow. (see isaacs/github#900)

Short term github workaround : a chrome extension allows to add an easy link to the history before the file got renamed. Try it yourself with backend/package.json
image

Locally just run git log --follow <file> instead of git log <file> to get the complete history. To have it at all times : git config log.follow true

Long term fix : upvote this issue.

from opla-v2.

mikbry avatar mikbry commented on July 21, 2024

Add docker setup and add in /README how to install it

from opla-v2.

licarth avatar licarth commented on July 21, 2024

@mikbry Docker like docker-compose (what's in community edition) or docker kubernetes ?

from opla-v2.

mikbry avatar mikbry commented on July 21, 2024

docker-compose as in community-edition

from opla-v2.

licarth avatar licarth commented on July 21, 2024

This is done in #18.

from opla-v2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.