Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Backend meeting with Claudio/Jerry/Patrick 5-28-24

  1. The backend should do most everything, capture status, log, start build, etc.
  2. talked about api version, 
  3. creating the new branch, do we want just the cli, or what if they use just regular git. We will still think about this. CLI can checkout using the url of the component repo
  4. User should be able to build remotely (using ad-build) or build locally in a container
  5. CLI should have 'completed' command to merge to main
  6. create a tag should be associated with the version that a 
  7. dev needs a tool starting from now, this version associate this branch. Problem is when you create a new tag, when the user update an old branch or old version, you associate the tag that belong to that branch. We have to manage different versions of the same time.
    1. have a  main that always point to most recent version
    2. then have development branch that points to respective version
    3. version automatically managed by backend
  8. We should have external/internal components. We should have a way to checkout external component and build, but not tracked by build system. CLI should be similar for both
    1. ex: Epics component should be external component, 
    info

core-build-system notes

  1. Example: Adding fields to the component schema, as well as the api. What classes to change:
    1. Rest API:
      1. controller/ComponentController.java → @RestController() 
        1. This is where you define the api commands
          1. @PostMapping, @GetMapping, @DeleteMapping
      2. mapper/ComponentMapper.java → @Mapper
        1. This is only made when you have a field that has fields of its own, and you need to map it to main schema
    2. Service:
      1. This is the backend logic that the rest api commands call
      2. service/ComponentService.java → @Service()
        1. ex: create() - check no conflict, check dependencies, then create the component and save to mongodb, then return the created component id back to user
    3. Repository:
      1. This is backend logic that extends MongoRepository for functions regarding the repository like 'boolean existsByName(string name)"
        1. repository/ComponentRepository.java
    4. Schema:
      1. model/Component.java
      2. dto/ComponentDTO.java → @Schema()
        1. This is where you define the db document schema
      3. dto/newComponentDTO.java →@Schema()
        1. What's the difference between componentDTO and newComponentDTO?
    5. Exception Handling:
      1. exception/ComponentAlreadyExists → @ResponseStatus
      2. exception/ComponentNotFound→ @ResponseStatus
    6. Testing:
      1. test/....../controller/ComponentControllerTest.java
      2. test/....../service/ComponentServiceTest.java