feat: establish Karya monorepo foundation and dashboard baseline - #373
Conversation
- scaffold the root repository structure, workspace, docs site, danger setup, issue templates, and GitHub automation - add runnable core gems for `karya`, `karya-activerecord`, and `karya-sequel` with gemspecs, binstubs, linting, and spec harnesses - add framework integration gem scaffolds for Rails, Sinatra, Roda, and Hanami, including dummy apps and package-local tooling - introduce `gems/karya-dashboard` with Ruby packaging, Vite, React, TypeScript, SCSS, Tailwind, ESLint, Stylelint, and Playwright - wire shared scripts for install, lint, unit, e2e, build, prepackage, dashboard dev, Firefox browser checks, and multi-node CLI checks - define the packaged dashboard asset layout and manifest generation flow in the dashboard gem - align repo docs and issue scope with the current foundation state and dashboard packaging baseline closes: #2 closes: #4 closes: #5 closes: #6
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
There was a problem hiding this comment.
Pull request overview
Establishes the initial Karya monorepo layout with runnable Ruby gems (core/adapters/framework integrations), a packaged dashboard UI gem (Vite/React/TS/Tailwind + Playwright smoke), and supporting docs/automation to run lint/test/build/release workflows.
Changes:
- Added scaffolds for
core/karya, adapters (karya-activerecord,karya-sequel), and framework integration gems (Rails/Hanami/Roda/Sinatra) with gemspecs, lint config, and RSpec harnesses. - Introduced
gems/karya-dashboardwith Vite/React/TypeScript/Tailwind setup, Playwright E2E, and a Ruby wrapper that reads a generated asset manifest + renders HTML helpers. - Added repo automation (GitHub Actions CI/release/docs deploy, Danger, Dependabot) and baseline documentation.
Reviewed changes
Copilot reviewed 235 out of 317 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| karya.code-workspace | Adds workspace folders + editor settings for the monorepo. |
| danger/Gemfile | Adds Danger dependency for PR automation. |
| danger/Dangerfile | Adds basic Danger checks (changelog/workspace presence). |
| core/karya/Gemfile | Core gem dev dependencies. |
| core/karya/LICENSE | MIT license for the core gem. |
| core/karya/README.md | Core gem development notes. |
| core/karya/Rakefile | RSpec rake task for core gem. |
| core/karya/.reek.yml | Reek config for core gem. |
| core/karya/.rspec | RSpec CLI defaults for core gem. |
| core/karya/.rubocop.yml | RuboCop config for core gem. |
| core/karya/.ruby-version | Pins Ruby version for core gem. |
| core/karya/exe/karya | Adds executable entrypoint for CLI. |
| core/karya/karya.gemspec | Defines core gem packaging + dependencies. |
| core/karya/lib/karya.rb | Core gem entrypoint and base error class. |
| core/karya/lib/karya/cli.rb | Thor-based CLI with header/version/help. |
| core/karya/lib/karya/version.rb | Defines core VERSION + TAGLINE. |
| core/karya/spec/spec_helper.rb | SimpleCov + RSpec config for core gem. |
| core/karya/spec/karya_spec.rb | Version smoke test for core gem. |
| core/karya/spec/karya/cli_spec.rb | CLI output/version tests. |
| core/karya/spec/e2e/spec_helper.rb | E2E spec helper for core gem. |
| core/karya-activerecord/Gemfile | Adapter gem dev dependencies. |
| core/karya-activerecord/LICENSE | Placeholder license file (currently empty). |
| core/karya-activerecord/README.md | Adapter gem development notes. |
| core/karya-activerecord/Rakefile | RSpec rake task for adapter gem. |
| core/karya-activerecord/.reek.yml | Reek config for adapter gem. |
| core/karya-activerecord/.rspec | RSpec CLI defaults for adapter gem. |
| core/karya-activerecord/.rubocop.yml | RuboCop config for adapter gem. |
| core/karya-activerecord/.ruby-version | Pins Ruby version for adapter gem. |
| core/karya-activerecord/karya-activerecord.gemspec | Defines adapter gem packaging + dependencies. |
| core/karya-activerecord/lib/karya/activerecord.rb | Adapter gem entrypoint. |
| core/karya-activerecord/lib/karya/activerecord/version.rb | Adapter VERSION constant. |
| core/karya-activerecord/spec/spec_helper.rb | SimpleCov + RSpec config for adapter gem. |
| core/karya-activerecord/spec/karya/active_record_spec.rb | Version smoke test. |
| core/karya-sequel/Gemfile | Sequel adapter gem dev dependencies. |
| core/karya-sequel/LICENSE | Placeholder license file (currently empty). |
| core/karya-sequel/README.md | Sequel adapter gem development notes. |
| core/karya-sequel/Rakefile | RSpec rake task for Sequel adapter gem. |
| core/karya-sequel/.gitignore | Placeholder gitignore file (currently empty). |
| core/karya-sequel/.reek.yml | Reek config for Sequel adapter gem. |
| core/karya-sequel/.rspec | RSpec CLI defaults for Sequel adapter gem. |
| core/karya-sequel/.rubocop.yml | RuboCop config for Sequel adapter gem. |
| core/karya-sequel/.ruby-version | Pins Ruby version for Sequel adapter gem. |
| core/karya-sequel/karya-sequel.gemspec | Defines Sequel adapter gem packaging + dependencies. |
| core/karya-sequel/lib/karya/sequel.rb | Sequel adapter gem entrypoint. |
| core/karya-sequel/lib/karya/sequel/version.rb | Sequel adapter VERSION constant. |
| core/karya-sequel/spec/spec_helper.rb | SimpleCov + RSpec config for Sequel adapter gem. |
| core/karya-sequel/spec/karya/sequel_spec.rb | Version smoke test. |
| gems/karya-dashboard/Gemfile | Ruby wrapper gem dev dependencies. |
| gems/karya-dashboard/LICENSE | MIT license for dashboard gem. |
| gems/karya-dashboard/README.md | Dashboard gem dev workflow docs. |
| gems/karya-dashboard/Rakefile | Adds Ruby specs + an assets build rake task. |
| gems/karya-dashboard/.eslintignore | ESLint ignore rules for dashboard package. |
| gems/karya-dashboard/.eslintrc.cjs | ESLint config (Airbnb + TS). |
| gems/karya-dashboard/.gitignore | Ignores node_modules/dist/build artifacts. |
| gems/karya-dashboard/.reek.yml | Reek config for dashboard ruby wrapper. |
| gems/karya-dashboard/.rspec | RSpec CLI defaults for dashboard ruby wrapper. |
| gems/karya-dashboard/.rubocop.yml | RuboCop config for dashboard ruby wrapper. |
| gems/karya-dashboard/.ruby-version | Pins Ruby version for dashboard gem. |
| gems/karya-dashboard/.stylelintrc.cjs | Stylelint config for SCSS + Tailwind at-rules. |
| gems/karya-dashboard/.yarnrc.yml | Yarn configuration (node_modules linker). |
| gems/karya-dashboard/index.html | Dashboard HTML entrypoint for Vite. |
| gems/karya-dashboard/karya-dashboard.gemspec | Packages dist/ + Ruby wrapper. |
| gems/karya-dashboard/package.json | Defines dashboard build/lint/e2e scripts and deps. |
| gems/karya-dashboard/playwright.config.ts | Playwright setup (Firefox-focused). |
| gems/karya-dashboard/playwright.config.js | Generated JS config artifact. |
| gems/karya-dashboard/postcss.config.js | Tailwind + autoprefixer wiring. |
| gems/karya-dashboard/scripts/verify-dist.mjs | Generates dist/asset-manifest.json from Vite manifest. |
| gems/karya-dashboard/src/app/App.tsx | App entry rendering DashboardPage. |
| gems/karya-dashboard/src/main.tsx | ReactDOM root render + global styles import. |
| gems/karya-dashboard/src/features/dashboard/page/DashboardPage.tsx | Dashboard baseline UI layout/sections. |
| gems/karya-dashboard/src/features/dashboard/data/dashboardContent.ts | Dashboard fixture content. |
| gems/karya-dashboard/src/components/layout/PageShell.tsx | Shared layout shell component. |
| gems/karya-dashboard/src/components/ui/MetricCard.tsx | Metric card UI component. |
| gems/karya-dashboard/src/components/ui/ReleaseCard.tsx | Release card UI component. |
| gems/karya-dashboard/src/styles/index.scss | Tailwind directives + SCSS tokens and layout styles. |
| gems/karya-dashboard/src/styles/_tokens.scss | SCSS design tokens. |
| gems/karya-dashboard/spec/spec_helper.rb | SimpleCov + RSpec config for dashboard gem. |
| gems/karya-dashboard/spec/karya/dashboard_spec.rb | Tests manifest and HTML rendering helpers. |
| gems/karya-dashboard/tailwind.config.ts | Tailwind config + custom tokens. |
| gems/karya-dashboard/tailwind.config.js | Duplicate JS config artifact. |
| gems/karya-dashboard/tests/e2e/dashboard.spec.ts | Playwright smoke test for heading text. |
| gems/karya-dashboard/tsconfig.json | TS solution references. |
| gems/karya-dashboard/tsconfig.app.json | TS config for app sources. |
| gems/karya-dashboard/tsconfig.node.json | TS config for node-based config files. |
| gems/karya-dashboard/tsconfig.eslint.json | TS config for type-aware linting. |
| gems/karya-dashboard/tsconfig.app.tsbuildinfo | Checked-in TS build artifact. |
| gems/karya-dashboard/tsconfig.node.tsbuildinfo | Checked-in TS build artifact. |
| gems/karya-dashboard/vite.config.ts | Vite build config with manifest/sourcemaps. |
| gems/karya-dashboard/vite.config.js | Duplicate JS config artifact. |
| gems/karya-hanami/Gemfile | Hanami integration gem dev dependencies. |
| gems/karya-hanami/LICENSE | Placeholder license file (currently empty). |
| gems/karya-hanami/README.md | Hanami integration gem docs. |
| gems/karya-hanami/Rakefile | RSpec rake task. |
| gems/karya-hanami/.gitignore | Placeholder gitignore file (currently empty). |
| gems/karya-hanami/.reek.yml | Reek config. |
| gems/karya-hanami/.rspec | RSpec defaults. |
| gems/karya-hanami/.rubocop.yml | RuboCop config. |
| gems/karya-hanami/.ruby-version | Pins Ruby version. |
| gems/karya-hanami/karya-hanami.gemspec | Gem packaging metadata. |
| gems/karya-hanami/lib/karya/hanami.rb | Integration gem entrypoint. |
| gems/karya-hanami/lib/karya/hanami/version.rb | VERSION constant. |
| gems/karya-hanami/spec/spec_helper.rb | SimpleCov + support loader. |
| gems/karya-hanami/spec/karya/hanami_integration_spec.rb | Version smoke test. |
| gems/karya-hanami/spec/support/dummy_app_support.rb | Temporary dummy app helper. |
| gems/karya-hanami/spec/dummy/app.rb | Dummy Rack app wiring dashboard rendering. |
| gems/karya-hanami/spec/dummy/config/routes.rb | Dummy routes slice mounting. |
| gems/karya-hanami/spec/dummy/config.ru | Dummy Rack config. |
| gems/karya-rails/Gemfile | Rails integration gem dev dependencies. |
| gems/karya-rails/LICENSE | Placeholder license file (currently empty). |
| gems/karya-rails/README.md | Rails integration gem docs. |
| gems/karya-rails/Rakefile | RSpec rake task. |
| gems/karya-rails/.gitignore | Placeholder gitignore file (currently empty). |
| gems/karya-rails/.reek.yml | Reek config. |
| gems/karya-rails/.rspec | RSpec defaults. |
| gems/karya-rails/.rubocop.yml | RuboCop config (Rails/RSpec plugins). |
| gems/karya-rails/.ruby-version | Pins Ruby version. |
| gems/karya-rails/config/routes.rb | Engine routes scaffold. |
| gems/karya-rails/karya-rails.gemspec | Gem packaging metadata. |
| gems/karya-rails/lib/karya/rails.rb | Rails integration entrypoint. |
| gems/karya-rails/lib/karya/rails/engine.rb | Rails engine + namespace isolation. |
| gems/karya-rails/lib/karya/rails/version.rb | VERSION constant. |
| gems/karya-rails/spec/spec_helper.rb | SimpleCov + support loading. |
| gems/karya-rails/spec/rails_helper.rb | Loads dummy Rails app for specs. |
| gems/karya-rails/spec/karya/rails_spec.rb | Version smoke test. |
| gems/karya-rails/spec/dummy/** | Adds a minimal Rails app scaffold for integration/e2e. |
| gems/karya-roda/Gemfile | Roda integration gem dev dependencies. |
| gems/karya-roda/LICENSE | Placeholder license file (currently empty). |
| gems/karya-roda/README.md | Roda integration gem docs. |
| gems/karya-roda/Rakefile | RSpec rake task. |
| gems/karya-roda/.gitignore | Placeholder gitignore file (currently empty). |
| gems/karya-roda/.reek.yml | Reek config. |
| gems/karya-roda/.rspec | RSpec defaults. |
| gems/karya-roda/.rubocop.yml | RuboCop config. |
| gems/karya-roda/.ruby-version | Pins Ruby version. |
| gems/karya-roda/karya-roda.gemspec | Gem packaging metadata. |
| gems/karya-roda/lib/karya/roda.rb | Integration gem entrypoint. |
| gems/karya-roda/lib/karya/roda/version.rb | VERSION constant. |
| gems/karya-roda/spec/spec_helper.rb | SimpleCov + RSpec config. |
| gems/karya-roda/spec/karya/roda_spec.rb | Version smoke test. |
| gems/karya-roda/spec/support/dummy_app_support.rb | Dummy app temp copy + Rack builder. |
| gems/karya-roda/spec/dummy/app.rb | Dummy Roda app route calling render helper. |
| gems/karya-roda/spec/dummy/config.ru | Dummy Rack config. |
| gems/karya-sinatra/Gemfile | Sinatra integration gem dev dependencies. |
| gems/karya-sinatra/LICENSE | Placeholder license file (currently empty). |
| gems/karya-sinatra/README.md | Sinatra integration gem docs. |
| gems/karya-sinatra/Rakefile | RSpec rake task. |
| gems/karya-sinatra/.gitignore | Placeholder gitignore file (currently empty). |
| gems/karya-sinatra/.reek.yml | Reek config. |
| gems/karya-sinatra/.rspec | RSpec defaults. |
| gems/karya-sinatra/.rubocop.yml | RuboCop config. |
| gems/karya-sinatra/.ruby-version | Pins Ruby version. |
| gems/karya-sinatra/karya-sinatra.gemspec | Gem packaging metadata. |
| gems/karya-sinatra/lib/karya/sinatra.rb | Integration gem entrypoint. |
| gems/karya-sinatra/lib/karya/sinatra/version.rb | VERSION constant. |
| gems/karya-sinatra/spec/spec_helper.rb | SimpleCov + RSpec config. |
| gems/karya-sinatra/spec/karya/sinatra_spec.rb | Version smoke test. |
| gems/karya-sinatra/spec/dummy/** | Adds classic/modular Sinatra dummy apps. |
| docs/index.md | Adds docs home page + dashboard asset contract notes. |
| docs/pages/host-workflow.md | Documents dashboard packaging contract. |
| docs/_config.yml | Configures Just the Docs site + theme toggling link. |
| docs/_includes/head_custom.html | Adds theme persistence/toggle JS. |
| docs/_includes/footer_custom.html | Adds badges + footer links. |
| docs/assets/css/just-the-docs-*.scss | Adds light/dark CSS entrypoints for Jekyll. |
| docs/Gemfile | Adds Jekyll/Just-the-Docs/GitHub Pages dependencies. |
| docs/.gitignore | Ignores Jekyll build artifacts. |
| docs/.ruby-version | Pins Ruby version for docs site. |
| docs/CNAME | Sets custom domain for GitHub Pages. |
| docs/404.html | Adds 404 page for docs site. |
| README.md | Updates root README with monorepo + scripts guidance. |
| CONTRIBUTING.md | Updates contributing guide with current structure and commands. |
| CHANGELOG.md | Adds initial changelog entry for the scaffold. |
| .github/workflows/shared-ci.yml | Adds shared CI matrix (Ruby) + Node lint/build + coverage upload. |
| .github/workflows/ci.yml | Wires main CI to shared workflow. |
| .github/workflows/release.yml | Adds tagged release publishing for Ruby gems + dashboard assets. |
| .github/workflows/release-drafter.yml | Adds release drafter + PR autolabeler workflows. |
| .github/workflows/jekyll-gh-pages.yml | Adds docs build/deploy workflow. |
| .github/workflows/danger.yml | Adds Danger workflow for PR checks. |
| .github/workflows/codeql.yml | Adds CodeQL scanning workflow. |
| .github/release-drafter.yml | Configures release-drafter categories/labels. |
| .github/dependabot.yml | Adds Dependabot updates for bundler/npm/actions. |
| .github/pull_request_template.md | Adds PR template notice header. |
| .github/ISSUE_TEMPLATE/*.md | Adds templates with license headers. |
| .github/FUNDING.yml | Adds GitHub Sponsors metadata. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Added Corepack enable step to CI workflows for better package management. - Updated Dangerfile to enforce PR title and branch naming conventions. - Included checks for Gemfile and Gemfile.lock consistency. - Improved validation for debugging statements in Ruby files. - Ensured CHANGELOG.md is updated in release branches.
- Deleted `vite.config.js` and `vite.config.d.ts` files. - These files were no longer needed for the project setup. - This cleanup helps maintain a tidy codebase and reduces confusion.
- Removed copyright comments from issue templates to streamline the content. - Added .gitignore for Qlty configuration to exclude unnecessary files. - Introduced Qlty configuration files (.markdownlint.json, .yamllint.yaml, qlty.toml) for code quality checks. - Updated RuboCop configuration files across various gems to exclude .vscode and vendor directories. - Enhanced documentation in CONTRIBUTING.md for clarity on gem development. - Improved formatting and consistency in various JavaScript and TypeScript files. - Updated HTML files to use lowercase doctype and improved formatting for better readability.
- Added ESLint rule for double quotes to enforce consistency. - Removed redundant `before` block in specs to streamline tests. - Updated specs to include `allow` statements directly in tests for clarity. - Cleaned up Tailwind configuration by removing unnecessary quotes around font family names.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 307 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Simplified RSpec command in multiple scripts by removing unnecessary spec path. - Added error handling in the Karya dashboard to ensure the root element exists before rendering. - Enhanced package script detection in run-common to match script names more accurately.
- Changed single quotes to double quotes in the error message for consistency. - Ensures uniformity in string formatting across the codebase.
- Removed unnecessary error handling for the root element. - Used non-null assertion to ensure the root element is present. - Streamlined the code for better readability and maintainability.
- Changed sourcemap setting to be conditional based on NODE_ENV. - This improves build performance in production by disabling sourcemaps.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 307 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Modified the `start` method in the CLI to pass arguments correctly. - Removed unnecessary copyright comments from SCSS files for cleaner code. - Ensured consistency in the documentation stylesheets.
- Removed unnecessary parameters from the super call in the start method. - Streamlined the method for better readability and maintainability.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 307 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Added the full MIT License text to the LICENSE files in: - core/karya-activerecord - core/karya-sequel - gems/karya-hanami - gems/karya-rails - gems/karya-roda - gems/karya-sinatra - Ensures compliance and clarity regarding software usage rights.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 307 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Added common directories to .gitignore across multiple components to prevent unnecessary files from being tracked. - Enhanced error handling in the dashboard asset manifest to provide clearer messages for invalid JSON. - Updated JavaScript asset paths to include runtime scripts for better loading performance. - Improved tests to validate new error handling and asset path normalization.
- Updated the error message for invalid asset manifest to provide clearer instructions. - Ensures users know to run 'yarn prepackage-build' to rebuild the asset manifest.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 307 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@codevedas-inc-bot recheck-cla |
1 similar comment
|
@codevedas-inc-bot recheck-cla |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 305 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Updated the yarn installation command for the "gems/karya-dashboard" suite to include the '--with-deps' flag for better dependency management. - Modified the run-reek-all script to write ruby suites to a temporary file before processing, enhancing readability and maintainability.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 305 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Removed redundant run_cmd function to simplify the script. - Updated the logic to read suite directories from generated files. - Improved organization of bundle and yarn update calls for better maintainability.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 305 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Changed the reload_asset_manifest! method to accept a manifest_path parameter for flexibility. - Updated error messages to reflect the new parameter, improving clarity on which manifest path is being referenced. - Ensured the current_manifest_path is passed correctly when reloading the asset manifest.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 238 out of 305 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Deleted .gitkeep files from various directories including core, gems, and docs. - This cleanup helps to reduce clutter in the repository and improves overall organization.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 232 out of 293 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Introduced `reload_asset_manifest!` method to reload the dashboard asset manifest. - Added `load_asset_manifest!` method for lower-level manifest loading. - Updated tests to verify the new manifest reloading behavior.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 232 out of 293 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
karya,karya-activerecord, andkarya-sequelwith gemspecs, binstubs, linting, and spec harnessesgems/karya-dashboardwith Ruby packaging, Vite, React, TypeScript, SCSS, Tailwind, ESLint, Stylelint, and Playwrightcloses: #2
closes: #4
closes: #5
closes: #6