Skip to content

build: add .dev-kit submodule (TAX-102)#21

Open
mscottnelson wants to merge 5 commits intomasterfrom
TAX-102-add-dev-kit
Open

build: add .dev-kit submodule (TAX-102)#21
mscottnelson wants to merge 5 commits intomasterfrom
TAX-102-add-dev-kit

Conversation

@mscottnelson
Copy link
Copy Markdown

@mscottnelson mscottnelson commented Mar 19, 2026

Summary

Adds .dev-kit v1.3.0 as a git submodule, providing:

  • Self-documenting make help with grouped targets
  • Shared git hooks (secret scanning, conventional commits, ticket linking)
  • .editorconfig and .gitattributes for consistent editor/git behavior
  • Dependabot, auto-merge, and release automation

Existing CI test/lint workflows are untouched.

What changed

  • .dev-kit submodule added
  • Makefile updated to use include .dev-kit/mk/common.mk
  • .editorconfig and .gitattributes added from shared templates
  • .github/workflows/release.yml — GitHub release on version tags
  • .github/dependabot.yml — weekly dependency updates
  • .github/workflows/auto-merge-devkit.yml — auto-merge .dev-kit bumps

Next steps after merge

  • Enable Allow auto-merge in repo settings (Settings → General → Pull Requests)
  • Run make dk-hooks locally to activate shared git hooks

TAX-102


Open with Devin

Integrate the shared .dev-kit submodule to bring standardized tooling
to the Magento 2 extension repo. This adds shared git hooks (commit-msg
linting, pre-commit checks), a self-documenting Makefile powered by
common.mk, and consistent editor/git configuration via .editorconfig
and .gitattributes templates.

The existing Makefile targets are preserved but reorganized to follow
the .dev-kit convention: `test` and `lint` now delegate through the
standard interface in common.mk to project-specific `_test` and `_lint`
implementations. Project-specific targets like `test-unit`,
`test-compatibility`, `test-local`, and `lint-fix` remain directly
accessible and are annotated for `make help` discoverability.

Ticket: TAX-102
…ease

Adds dependency management (dependabot + auto-merge for .dev-kit
updates) and release workflow. Existing CI workflows are untouched.

Ticket: TAX-102
Bump the .dev-kit submodule from the previous pinned version to v1.3.2,
which includes the v1.3.1 fix for extensionless binary files in
.gitattributes. The updated .gitattributes is also copied into the repo
root so that Git LFS and diff behavior apply correctly to binaries that
lack a file extension.

Ticket: TAX-102
@mscottnelson mscottnelson added the enhancement New feature or request label Mar 19, 2026
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

View 3 additional findings in Devin Review.

Open in Devin Review

Comment on lines +105 to +114
Gemfile.lock -diff
poetry.lock -diff
composer.lock -diff

# Merge strategy: lock files should be regenerated, not merged.
# "ours" keeps the current branch's version; the developer then
# re-runs the package manager to reconcile.
package-lock.json merge=ours
yarn.lock merge=ours
pnpm-lock.yaml merge=ours
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 All export-ignore rules removed from .gitattributes, bloating release archives with dev files

The old .gitattributes excluded development/CI files from git archive (used by GitHub for release ZIPs and Composer for package distribution). The new file completely replaces the old content and drops all export-ignore directives. The previously excluded paths (Test/, .github/, scripts/, Makefile, run-test.sh, .cursorrules, docs/images/) will now be included in release archives. This is especially impactful because this PR also adds a release workflow (release.yml) that creates GitHub releases, and this is a Magento extension distributed via Composer — end users will receive test suites, CI workflows, and build scripts in their vendor/ directory.

Prompt for agents
In .gitattributes, after the existing content (or at the end of the file), add back the export-ignore rules that were present in the original file. These rules exclude dev/CI files from git archive output (GitHub release ZIPs and Composer packages). Add a new section like:

# =============================================================================
# Export Ignore (git archive / release ZIPs)
# =============================================================================
# Exclude dev/CI files from git archive (GitHub release ZIPs, Composer packages).
.gitignore export-ignore
.gitattributes export-ignore
.github/ export-ignore
.cursorrules export-ignore
.dev-kit export-ignore
.gitmodules export-ignore
.editorconfig export-ignore
Test/ export-ignore
Makefile export-ignore
run-test.sh export-ignore
scripts/ export-ignore
docs/images/ export-ignore

Also consider adding the newly introduced files (.dev-kit, .gitmodules, .editorconfig, devin_review_ignored_file_changes.md) to the export-ignore list.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +12 to +18
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 .editorconfig default 2-space indent applies to PHP files, violating .cursorrules 4-space mandate

The .cursorrules file explicitly states under Code Style Guidelines: "Use proper indentation (4 spaces)". The new .editorconfig sets indent_size = 2 as the global default with no [*.php] section to override it. Since the glob [*] matches all files including *.php, editors respecting .editorconfig will auto-format PHP code with 2-space indentation. All existing PHP files in the project (e.g. Model/Tax.php, Model/Api.php) use 4-space indentation per PSR-2. This configuration will actively cause new contributions to use the wrong indentation style.

Prompt for agents
In .editorconfig, add a PHP-specific section after the default [*] block (or after the YAML section) that sets the correct 4-space indentation for PHP files, matching PSR-2 and the .cursorrules requirement:

# PHP: 4-space indent (PSR-2 standard)
[*.php]
indent_size = 4

This should be added somewhere in the file, for example after line 41 (the YAML section) or after line 18 (the default section).
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

v1.3.3 auto-skips npm script discovery in repos without
package.json, removing the need for NPM_SCRIPTS_DISABLE.
Picks up smart auto-detect for standard targets (Go, Rust, Node),
consolidated target extraction, description promotion, test
infrastructure improvements, and Rust tooling support.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant