Skip to content
This repository has been archived by the owner on May 22, 2024. It is now read-only.

Toolkit v5.0.0 Proposed Changes #262

Closed
12 tasks
emilyrohrbough opened this issue Mar 14, 2019 · 10 comments · Fixed by #284
Closed
12 tasks

Toolkit v5.0.0 Proposed Changes #262

emilyrohrbough opened this issue Mar 14, 2019 · 10 comments · Fixed by #284

Comments

@emilyrohrbough
Copy link
Contributor

emilyrohrbough commented Mar 14, 2019

Proposed Changes

Wdio

Webpack

Axe

Scripts

- [ ] remove Arabic translation from supported locales: #229

Dependencies

Issues to Consider Won't Fix in v5

@emilyrohrbough
Copy link
Contributor Author

emilyrohrbough commented Mar 14, 2019

This bug was logged: #257. It discusses default configuration issues and makes me wonder if how we should handle this. We could:

  • close as intended behavior that terraI18n.config.js is only for non-script use
  • OR remove script defaults and let defaults be 'hidden'
  • OR remove aggregrate-translations script.

We should land on a consensus before v5 is released.

@emilyrohrbough
Copy link
Contributor Author

These are a lot of changes. It might be worth maintaining a v5 branch for this work to keep PRs manageable. For example: toolkit-v5...toolkit-v5-remove-nightwatch.

@emilyrohrbough
Copy link
Contributor Author

Recent changes to aggregate-translations script added the exclude key to open up the default translations search. It was proposed to drop the directories key, but it was kept for passivity. We should explore if the directories key should be dropped. I think at this point it is "dead". #206 (comment)

@bjankord
Copy link
Contributor

In our meeting on Friday, March 15th, we talked about turning terra-toolkit into a monorepo.

Not sure if this GitHub issue is the best to comment on or if a new issue should be logged for the terra-toolkit monorepo concept.

I'd like to see the code in this repo split into 3 packages:
terra-toolkit (the testing part of the current repo)
terra-webpack (the webpack config part of the current repo)
terra-aggreage-translations (the aggregate-translations part of the current repo)

With the idea of terra-toolkit becoming a monorepo, I'm curious what others think about this proposed split of the current repo.

I'm also curious what others think about some of the other singular repos we have like eslint-config-terra, stylelint-config-terra, browserslist-config-terra, and generator-terra-module. Should we pull those repos under the terra-toolkit repo if we go down the monorepo path for terra-toolkit?

@mjhenkes
Copy link
Contributor

Possibly terra-scripts? We also have our tt-serve and serve static scripts as well as aggregate themes.

@emilyrohrbough
Copy link
Contributor Author

Our toolkit currently has some coupled logic:

IMG_9691

I think this breakdown could result in the following mono-repo structure :

/packages
    / eslint-config-terra
    / stylelint-config-terra
    / terra-aggregate-themes
    / terra-aggregate-translations
    / terra-config-webpack
        /config
            - webpack.config.js
    / terra-serve
        /scripts
            - tt-serve
            - tt-serve-static
    / terra-docker
        - docker-compose
        - terra’s base image
    / terra-pack
    / terra-utility
        - Logger
    / terra-wdio
        /scripts
            - tt-wdio
        /config
            - wdio.config.js
            - visual-regression.config.js
        / services
            - Terra Service
                - terra test commands
                - move Axe service implementation here because its coupled logic
                - would like to see Visual Regression Service logic decoupled
            - Service Static Service
            - Selenium Docker Service
            - Service Static Service
                - coupled to serve-static script & webpack version
    / terra-toolkit
        // use to manage versions projects pull in?

One could even argue our custom services could be their own package such that terra-wdio acts as a test config manager instead of implementer potentially.

@mjhenkes I do think terra-scripts or terra-cli package could be appropriate for managing the .bin executables we provide.

@ryanthemanuel
Copy link
Contributor

As long as Terra scripts and Terra utility themselves don’t turn into junk drawers

@ryanthemanuel
Copy link
Contributor

As for issue #257 I propose we drop the script defaults and rely on the defaults in the code later. Thus the fallback goes cli options, config file, and then defaults

@bjankord
Copy link
Contributor

bjankord commented Mar 20, 2019

I like the proposal @emilyrohrbough posted. I think decoupling the various features in terra-toolkit is a highly needed improvement. I also see value in terra-scripts or terra-cli package that could be appropriate for managing the .bin executables we provide and dry up the amount of packages within the repo.

In regards to implementation details of the monorepo, I do think using lerna would be good to manage the toolkit monorepo. While a lot of these packages can be standalone, a concern I have is the devDependencies they use. Most of them will share common dependencies, I'm mainly thinking of babel. Being able to hoist the devDependency up and have 1 instance of it would be nice. I believe this should be possible without lerna, but I do think lerna makes managing that easier.

@emilyrohrbough
Copy link
Contributor Author

emilyrohrbough commented Mar 20, 2019

We could also create a terra-toolkit package in the mono-repo structure that will house our default peer dependency recommendations and provide an one-to-one out of the box place for people to reference the new packages.

Would need to test this theory, but then we could create set the root-level package.json to "private": true(for example) such that when it is pulled in as a dependency, it will compile & reference/hoist up the package/terra-toolkit so we can have PR validations in terra-core, clinical, and framework before pushing out changes.

Quick reference to other projects that use mono-repos:

@emilyrohrbough emilyrohrbough added this to To do in Toolkit V5 via automation May 7, 2019
@emilyrohrbough emilyrohrbough moved this from To do to Approved in Toolkit V5 May 17, 2019
Toolkit V5 automation moved this from Approved to Ready for Release May 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
No open projects
Toolkit V5
  
Ready for Release
Development

Successfully merging a pull request may close this issue.

4 participants