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

Technical debt laundry list #399

Open
12 of 31 tasks
jharvey10 opened this issue Mar 17, 2022 · 0 comments
Open
12 of 31 tasks

Technical debt laundry list #399

jharvey10 opened this issue Mar 17, 2022 · 0 comments

Comments

@jharvey10
Copy link
Contributor

jharvey10 commented Mar 17, 2022

This issue is to track anything and everything across the carbon-platform repo that we think could use improvement. It's meant to be long-living and might grow or shrink over time. Feel free to add additional categories as needed.

We can convert a bullet into an issue if we decide to pull it into a sprint.

Packages

API

  • The auth APIs work, but they won't scale well to multiple providers in their current state. We could definitely improve this
  • There are a few disparate function calls available to build up authentication and authorization of a request. This could potentially be improved through function chaining and some naming tweaks.
    • How cool would it be to have an API that was even more functional like:
      export getServerSideProps =
        auth(context)
          .requireValidUser()
          .requireTrue(isValidIbmUser)
          .requireSomeOtherThing(/*...*/)
          .then(() => {
            // actual function
          })

MDX Components

  • Storybook demos are just a random iframe url which anyone could put as anything. We should have to register a storybook hosting URL at the library level

Micromanage

  • Unit tests for micromanage-cli
  • Less internal assumptions and more configuration parameters and sub-commands

Runtime

Logging

  • Enhance API to allow execution time to be provided as an optional field

Misc.

  • All of our public packages should have a docs overhaul and move their docs to their README.md file as opposed to deferring to the platform /docs/ folder.

Services

Web App

Tooling

  • Reduce docker image sizes and build times
    • "finalize" script in the base docker image that other images can call to automatically slim down their image
    • Use esbuild to make services tiny
  • Monorepo: Make '@typescript-eslint/no-use-before-define': 'error', compliant #350
  • Adjust JSDoc linting to better suit our needs.
  • Deploying to test is more "manual" than it should be. What about automatic PR creation that updates the services to the latest every few days?
    • This will be done implicitly once we move to k8s
  • Our CI builds do bare-metal builds, but they don't do docker builds, which are what we actually deploy. Should we investigate doing both for better indications of failure?
  • There's a mismatch on the deployed-services/production branch. The service json file is called "prod", but it should be called "production" like everything else. This will involve a change to micromanage.
    • This will no longer be an issue once we move to k8s
  • Dependabot schedules don't work all that well. Maybe investigate renovatebot as an alternative.
  • Base images are built for every service during the nightly, but they're identical for all services. It should instead be built once and passed to the service build job steps.
  • Add a GH Action/comment/check to show what the versions will end up as when the PR is merged in. #1045
  • Linter rule for double imports like page-header/page-header (prefer index import) or imports from dist directories
  • Can python3, make, and g++ be removed after sharp is installed during image builds?

Docs

  • There should really be some docker documentation to explain how things are laid out and built, comparing it to how we do things locally when developing.

Schema

{
  "yaml.schemas": {
    "https://unpkg.com/@carbon-platform/schemas@v1/carbon-resources.schema.json": "carbon.yml"
  }
}
@jharvey10 jharvey10 pinned this issue Mar 17, 2022
@mattrosno mattrosno changed the title Technical Debt Laundry List Technical debt laundry list May 12, 2022
@aubrey-oneal aubrey-oneal unpinned this issue Aug 4, 2022
@jharvey10 jharvey10 pinned this issue Aug 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants