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

Setup Mono Repo Using Melos #327

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open

Conversation

ProjectAJ14
Copy link
Contributor

@ProjectAJ14 ProjectAJ14 commented Jan 30, 2025

Hi @Frezyx,

I wanted to fix an issue but noticed that a lot of things are being handled manually. Since I have been using Melos for a few years now, I found it helpful when dealing with multi-package repositories or monorepos.

I have added Melos setup to this repository.

Now, you can version your package at once using:

melos version

Note: I recommend using convention commits. Refer Automated Releases

And publish all packages at once using:

melos publish

Reference Melos Documentation

Utils Alternatives with Melos Commands

Old Script Melos Equivalent
deploy_web.sh melos deploy-shop-app-example
pub_clean_all.sh melos clean
pub_get_all.sh melos bs
pub_get_all_offline.sh melos bs --offline
publish_all.sh melos publish
test.sh melos test

Improving the Workflow

I saw that there were multiple workflows for the package, so I removed them and replaced them with a single workflow using a matrix strategy. This way, we run the same checks but in less time and with fewer resources.

Bonus: I also added a new workflow that automatically hosts the examples/shop_app_example on GitHub Pages whenever there is a push to the master branch.

Take a look—I hope this helps! 🚀

- Add melos.yaml for project configuration
- Add root pubspec.yaml with dev dependencies
- Update flutter_bloc dependency in shop_app_example
- Add talker_logger dependency overrides in various pubspec_overrides.yaml files
@codecov-commenter
Copy link

codecov-commenter commented Jan 30, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.42%. Comparing base (d6a4c06) to head (dcac5e3).

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #327   +/-   ##
=======================================
  Coverage   98.42%   98.42%           
=======================================
  Files          28       29    +1     
  Lines         572      573    +1     
=======================================
+ Hits          563      564    +1     
  Misses          9        9           
Flag Coverage Δ
talker 96.03% <ø> (?)
talker_bloc_logger 100.00% <ø> (?)
talker_dio_logger 100.00% <ø> (?)
talker_http_logger 100.00% <ø> (?)
talker_logger 100.00% <ø> (?)
talker_riverpod_logger 100.00% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

ProjectAJ14 and others added 14 commits January 30, 2025 18:39
…ation

- Remove utility shell scripts for deployment, testing, and package management
- Add new Melos scripts for test running and shop app example deployment
- Simplify project maintenance by centralizing scripts in melos.yaml
- Set up matrix build strategy for multiple packages
chore: Add GitHub Actions workflows for Talker packages
- Change workflow trigger branches from "main" to "master"
- Add test configurations for additional Talker packages
- Include talker, talker_bloc_logger, talker_dio_logger, talker_http_logger, talker_logger, and talker_riverpod_logger
- Maintain existing configuration for talker_flutter package
- Simplify Flutter setup by removing explicit channel specification
- Remove pub dependencies cache step
- Add Melos bootstrap command to prepare workspace
- Streamline dependency installation process
- Remove deprecated v1 workflows for individual Talker packages
- Update GitHub Pages workflow to scope Melos bootstrap to shop_app_example
- Remove pull request triggers from GitHub Pages workflow
@ProjectAJ14 ProjectAJ14 marked this pull request as ready for review January 30, 2025 15:03
- Add root-level analysis_options.yaml with recommended lints
- Remove redundant analysis_options.yaml files from individual packages and examples
- Standardize static analysis configuration across the project
- Update constructor syntax across multiple packages using super parameters
- Replace deprecated `Key? key` pattern with `super.key`
- Simplify constructor initializations in Talker packages
- Remove redundant library declarations and update library syntax
- Minor code style improvements and linting adjustments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants