Skip to content

feat: set up CI, linting, and documentation automation#44

Merged
unclesp1d3r merged 6 commits into
mainfrom
Initial_Setup
Sep 30, 2025
Merged

feat: set up CI, linting, and documentation automation#44
unclesp1d3r merged 6 commits into
mainfrom
Initial_Setup

Conversation

@unclesp1d3r
Copy link
Copy Markdown
Member

This pull request introduces several improvements to project automation, documentation, and developer tooling. The main changes include enhanced CI and linting configurations, expanded and clarified project task specifications, and improved documentation consistency and accuracy. Additionally, new configuration files for spell checking and MegaLinter are added to maintain code and documentation quality.

Automation and CI improvements:

  • Updated .github/dependabot.yml to refine dependency update schedules and add support for rust-toolchain and github-actions ecosystems, with more frequent checks.
  • Fixed a typo in the release.yml workflow to correctly reference the outputs property for cargo-cyclonedx.
  • Updated .kiro/hooks/ci-auto-fix.kiro.hook to use just commands for formatting, linting, building, and auditing, aligning with project conventions.
  • Added .mega-linter.yml for comprehensive and customized linting, including directory and file exclusions, and tailored linter arguments.
  • Added .prettierignore to exclude markdown and generated files from Prettier formatting.
  • Added cspell.config.yaml for project-specific spell checking, including ignored paths and custom dictionary entries.

Project specification and planning:

  • Significantly expanded .kiro/specs/stringy-binary-analyzer/tasks.md with detailed subtasks and requirements for all major features, including format detection, section classification, string extraction, classification, ranking, output formatting, CLI, memory mapping, testing, and pipeline orchestration. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]

Documentation and naming consistency:

  • Updated all documentation and code references to use the correct GitHub repository name StringyMcStringFace instead of the previous lowercase variant, across README.md, docs/src/contributing.md, docs/src/installation.md, and docs/src/troubleshooting.md. [1] [2] [3] [4] [5] [6]

Developer tooling:

  • Improved formatting recipes in justfile to provide granular formatting commands for Rust, JSON/YAML, Markdown, and the Justfile itself.
  • Reformatted the targets array in dist-workspace.toml for better readability.

- Removed `Cargo.lock`, `*.md`, and `.gitignore` from the CI auto-fix hook patterns to streamline the file checks.
- Retained essential patterns for Rust source files and configuration files.

Tested the updated hook; it functions correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Added new commands for building, serving, cleaning, and checking documentation using mdBook and rustdoc.
- Updated CI auto-fix hook to reflect new command patterns for documentation checks and formatting.

Tested the new documentation commands; all functions operate correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Changed the package ecosystem from "devcontainers" to "cargo".
- Updated the schedule for "github-actions" to daily.
- Added a new package ecosystem "rust-toolchain" with a daily update schedule.

Tested the dependabot configuration; updates are scheduled correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
* feat: Update implementation plan and documentation for stringy-binary-analyzer

- Reformatted the implementation plan in `tasks.md` for improved clarity and consistency, ensuring all tasks are clearly outlined with proper indentation.
- Updated example usage in `macho.rs` to reflect correct module paths and commented out actual file reading for clarity.

Tested the documentation changes; all formatting is correct and displays as expected.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

* chore: Add linter and spell checker configurations

- Introduced `.mega-linter.yml` for comprehensive linter settings, minimizing false positives while ensuring code quality.
- Added `cspell.config.yaml` for spell checking with custom dictionaries and ignore paths.
- Updated `.prettierignore` to exclude Markdown files and generated directories.
- Enhanced `.pre-commit-config.yaml` with additional hooks for linting and formatting.

Tested all configurations; linter and spell checker operate as expected without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

---------

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Sep 30, 2025

Caution

Review failed

The pull request is closed.

Summary by CodeRabbit

  • New Features
    • Unified task runner with expanded commands for formatting, linting, docs build/serve, distribution planning, and CI generation.
  • Documentation
    • Updated installation, contributing, and troubleshooting to reflect the new repository name.
    • Improved docs workflows and example references.
  • Chores
    • Introduced spell/links checking, comprehensive linting, and standardized pre-commit hooks.
    • Refined formatting and ignore patterns; adjusted automated dependency update schedules.
  • Style
    • Reformatted task specifications and normalized configuration structures.

Walkthrough

Repository-wide tooling and docs updates: Dependabot config shifts to GitHub Actions and Rust toolchain entries; CI/linting ecosystems added/standardized (MegaLinter, cspell, pre-commit, prettier ignore tweaks); Kiro CI hook aligned to just-based workflow; docs updated for renamed repo; justfile expanded with structured format/lint/docs/dist targets; a Rust doc example path adjusted.

Changes

Cohort / File(s) Summary
Dependency update config
.github/dependabot.yml
Replace devcontainers with cargo/github-actions entries; adjust schedules to daily; add rust-toolchain entry.
Kiro CI hook and spec
.kiro/hooks/ci-auto-fix.kiro.hook, .kiro/specs/stringy-binary-analyzer/tasks.md
Hook: switch prompts/commands from cargo to just; simplify trigger patterns; keep rustfmt.toml reference. Spec: reformatting/indent cleanup only.
Linting and QA configuration
.mega-linter.yml, cspell.config.yaml
Add full MegaLinter config (auto-fixes, exclusions, lychee, prettier). Add cspell config with dictionaries, ignore patterns, language settings, and project terms.
Pre-commit and formatting ignores
.pre-commit-config.yaml, .prettierignore
Reorganize/standardize pre-commit repos/hooks; enable and parameterize multiple hooks. Update prettier ignores: exclude Markdown, add build/generated paths, remove yml exclusion.
Documentation updates for repo rename
README.md, docs/src/contributing.md, docs/src/installation.md, docs/src/troubleshooting.md
Update clone URLs, paths, and links from string_mcstringface to StringyMcStringFace. No behavioral changes.
Build and workflow orchestration
justfile
Replace single-step format/lint with multi-recipe dispatchers; add format:rust/json-yaml/md/just; lint:rust/actions/spell/docs/just; docs-build/serve/clean/check; dist-generate-ci; additional CI/docs helpers and GoReleaser targets.
Rust doc example tweak
src/container/macho.rs
Update example import path to container::macho::MachoParser; simplify example snippet; no code logic changes.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Developer
  participant Just as justfile
  participant Tools as Linters/Formatters
  participant CI as CI Integrations

  Dev->>Just: just format
  Just->>Tools: format:rust (rustfmt)
  Just->>Tools: format:json-yaml (prettier)
  Just->>Tools: format:md (md tooling)
  Just->>Tools: format:just (just --fmt)

  Dev->>Just: just lint
  Just->>Tools: lint:rust (fmt-check, clippy)
  Just->>Tools: lint:actions (actionlint)
  Just->>Tools: lint:spell (cspell)
  Just->>Tools: lint:docs (markdownlint, lychee)
  Just->>Tools: lint:just (just --check)

  Dev->>Just: just docs-build / docs-serve
  Just->>Tools: mdBook pipelines

  Dev->>Just: just dist-generate-ci
  Just->>CI: generate cargo-dist workflow hints
  Note over CI,Just: CI/QA configs supported by MegaLinter, pre-commit, cspell
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

I thump my paw—new justfile springs,
Lints and links on tidy wings.
Dependabot wakes with daily cheer,
Docs rename crisp and crystal clear.
Cspell guards each typo trace—
Hop, hop! our CI finds its pace.
(._.)/ carrot commits in place 🍃🥕

Pre-merge checks and finishing touches and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title “feat: Initial setup” is related to the overall intent of establishing project automation and tooling, but it is overly generic and does not clearly convey the specific nature of the changes such as CI configuration, documentation updates, and developer tooling setup. Please refine the title to more specifically reflect the main changes, for example “feat: set up CI, linting, and documentation automation” so that the summary clearly indicates the scope of this setup.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed The pull request description clearly summarizes the key changes across CI updates, linting configurations, project specifications, documentation adjustments, and developer tooling additions, directly reflecting the contents of the changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6286597 and ec43457.

📒 Files selected for processing (13)
  • .github/dependabot.yml (1 hunks)
  • .kiro/hooks/ci-auto-fix.kiro.hook (1 hunks)
  • .kiro/specs/stringy-binary-analyzer/tasks.md (2 hunks)
  • .mega-linter.yml (1 hunks)
  • .pre-commit-config.yaml (1 hunks)
  • .prettierignore (1 hunks)
  • README.md (1 hunks)
  • cspell.config.yaml (1 hunks)
  • docs/src/contributing.md (1 hunks)
  • docs/src/installation.md (3 hunks)
  • docs/src/troubleshooting.md (1 hunks)
  • justfile (3 hunks)
  • src/container/macho.rs (1 hunks)

🧪 Early access (Sonnet 4.5): enabled

We are currently testing the Sonnet 4.5 model, which is expected to improve code review quality. However, this model may lead to increased noise levels in the review comments. Please disable the early access features if the noise level causes any inconvenience.

Note:

  • Public repositories are always opted into early access features.
  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.

Comment @coderabbitai help to get the list of available commands and usage tips.

@unclesp1d3r unclesp1d3r changed the title feat: Initial setup feat: set up CI, linting, and documentation automation Sep 30, 2025
- Consolidated formatting and linting commands in the justfile for improved clarity and efficiency.
- Replaced individual format and lint recipes with aliases and streamlined main commands.
- Ensured all formatting and linting operations remain functional.

Tested the updated justfile; all commands execute correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…arget list in dist-workspace

- Updated the output path reference in the GitHub Actions release workflow from `steps.cargo-cyclonedx.outputs.paths` to `steps.cargo-cyclonedx.output.paths` for consistency.
- Simplified the target list in `dist-workspace.toml` by removing unnecessary line breaks for improved readability.

Tested the workflow and configuration changes; all functions operate correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
@unclesp1d3r unclesp1d3r enabled auto-merge (squash) September 30, 2025 02:35
@unclesp1d3r unclesp1d3r merged commit 4f5c1d2 into main Sep 30, 2025
15 of 17 checks passed
@unclesp1d3r unclesp1d3r deleted the Initial_Setup branch September 30, 2025 02:35
unclesp1d3r added a commit that referenced this pull request Feb 25, 2026
* fix: Update CI auto-fix hook patterns

- Removed `Cargo.lock`, `*.md`, and `.gitignore` from the CI auto-fix hook patterns to streamline the file checks.
- Retained essential patterns for Rust source files and configuration files.

Tested the updated hook; it functions correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

* feat: Enhance documentation management in justfile

- Added new commands for building, serving, cleaning, and checking documentation using mdBook and rustdoc.
- Updated CI auto-fix hook to reflect new command patterns for documentation checks and formatting.

Tested the new documentation commands; all functions operate correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

* chore: Update dependabot configuration for package management

- Changed the package ecosystem from "devcontainers" to "cargo".
- Updated the schedule for "github-actions" to daily.
- Added a new package ecosystem "rust-toolchain" with a daily update schedule.

Tested the dependabot configuration; updates are scheduled correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

* fix: megalinter issues (#43)

* feat: Update implementation plan and documentation for stringy-binary-analyzer

- Reformatted the implementation plan in `tasks.md` for improved clarity and consistency, ensuring all tasks are clearly outlined with proper indentation.
- Updated example usage in `macho.rs` to reflect correct module paths and commented out actual file reading for clarity.

Tested the documentation changes; all formatting is correct and displays as expected.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

* chore: Add linter and spell checker configurations

- Introduced `.mega-linter.yml` for comprehensive linter settings, minimizing false positives while ensuring code quality.
- Added `cspell.config.yaml` for spell checking with custom dictionaries and ignore paths.
- Updated `.prettierignore` to exclude Markdown files and generated directories.
- Enhanced `.pre-commit-config.yaml` with additional hooks for linting and formatting.

Tested all configurations; linter and spell checker operate as expected without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

---------

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

* refactor: Simplify justfile formatting and linting commands

- Consolidated formatting and linting commands in the justfile for improved clarity and efficiency.
- Replaced individual format and lint recipes with aliases and streamlined main commands.
- Ensured all formatting and linting operations remain functional.

Tested the updated justfile; all commands execute correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

* fix: Correct output path reference in release workflow and simplify target list in dist-workspace

- Updated the output path reference in the GitHub Actions release workflow from `steps.cargo-cyclonedx.outputs.paths` to `steps.cargo-cyclonedx.output.paths` for consistency.
- Simplified the target list in `dist-workspace.toml` by removing unnecessary line breaks for improved readability.

Tested the workflow and configuration changes; all functions operate correctly without errors.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>

---------

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
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.

1 participant