Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
786af3d
Initial plan
Copilot Mar 6, 2026
9134d6e
Add pipeline and fan-out-merge composite route strategies with unit t…
Copilot Mar 6, 2026
8dd31c8
Add BDD tests for pipeline and fan-out-merge composite strategies
Copilot Mar 6, 2026
ec268bd
Update example, config, and README for pipeline and fan-out-merge str…
Copilot Mar 6, 2026
b20df85
Address review feedback: validate empty_policy, 502 on empty fan-out,…
Copilot Mar 9, 2026
5a14971
Merge branch 'main' into copilot/add-composite-route-support
intel352 Mar 9, 2026
ffbd1fc
feat: reset to CrisisTextLine/modular upstream + rename to GoCodeAlone
intel352 Mar 9, 2026
3d95580
chore: update sub-module dependencies to v1.12.0
intel352 Mar 9, 2026
dd6b350
fix: remove eventbus v1 self-reference, use v2 import path for mocks
intel352 Mar 9, 2026
66283b2
docs: revise reimplementation plans with gap analysis
intel352 Mar 9, 2026
655bd1a
feat: add aggregate health service with providers, caching, and event…
intel352 Mar 9, 2026
316def2
feat: add TenantGuard enforcement layer for multi-tenant isolation
intel352 Mar 9, 2026
64bb3f6
feat: add dynamic reload manager with orchestrator, circuit breaker, …
intel352 Mar 9, 2026
baea918
feat: add contract verifier and performance benchmarks
intel352 Mar 9, 2026
6eb0971
feat: add BDD contract tests for reload and health subsystems
intel352 Mar 9, 2026
8f84f87
fix: resolve CI lint failures and letsencrypt checksum mismatch
intel352 Mar 9, 2026
3867ff2
fix: address all PR review comments
intel352 Mar 9, 2026
bbb7e2a
fix: address second round of PR review comments
intel352 Mar 10, 2026
80289d2
fix: address remaining PR review comments (round 3)
intel352 Mar 10, 2026
d29ee4a
fix: address round 4 PR review comments
intel352 Mar 10, 2026
9979492
fix: resolve contextcheck lint error in handleReload
intel352 Mar 10, 2026
e42a1d4
fix: address round 5 PR review comments
intel352 Mar 10, 2026
e48b208
fix: resolve err113 and wrapcheck lint errors
intel352 Mar 10, 2026
bcb82fb
feat: reimplement dropped features (reload, health, tenant guard) (#81)
intel352 Mar 10, 2026
1adce01
docs: add modular v2 enhancements design doc
intel352 Mar 10, 2026
5a97bac
docs: add modular v2 enhancements implementation plan
intel352 Mar 10, 2026
c1477b9
chore: upgrade to Go 1.26, fix plan tech stack reference
intel352 Mar 10, 2026
fa3494f
Add WithModuleDependency builder option for config-driven dependency …
intel352 Mar 10, 2026
40d2094
feat: add Drainable interface with PreStop drain phase
intel352 Mar 10, 2026
ad2b8e5
feat: add application phase tracking with lifecycle transitions
intel352 Mar 10, 2026
ff0fc8b
feat: add WithParallelInit for concurrent module initialization
intel352 Mar 10, 2026
45ae6aa
feat: add RegisterTypedService/GetTypedService generic helpers
intel352 Mar 10, 2026
dd36523
feat: add OnServiceReady callback for service readiness events
intel352 Mar 10, 2026
ea32f0c
feat: add Plugin interface with WithPlugins builder option
intel352 Mar 10, 2026
d3d44a4
feat: add WithDynamicReload to wire ReloadOrchestrator into app lifec…
intel352 Mar 10, 2026
f404d1d
feat: add SecretResolver interface and ExpandSecrets utility
intel352 Mar 10, 2026
a7b59a2
feat: add configwatcher module with fsnotify file watching
intel352 Mar 10, 2026
1d9270e
feat: add SlogAdapter wrapping *slog.Logger for Logger interface
intel352 Mar 10, 2026
107589b
feat: add MetricsProvider interface and CollectAllMetrics
intel352 Mar 10, 2026
570c970
fix: address code review findings (C1, C2, I1-I3)
intel352 Mar 10, 2026
7a055f0
refactor: modernize codebase with gopls quickfixes
intel352 Mar 10, 2026
ef9f676
fix: address Copilot review findings from PR #83
intel352 Mar 10, 2026
7866c7c
Replace realistic-looking DB credentials and hostnames with generic p…
Copilot Mar 10, 2026
63fd288
merge: resolve conflicts from origin/main into feat/reimplementation
intel352 Mar 10, 2026
357f242
fix: eliminate currentModule race in parallel init
intel352 Mar 10, 2026
ae4d98e
ci: upgrade Go version from 1.25 to 1.26 in all workflows
intel352 Mar 10, 2026
9b0913f
chore: upgrade Go 1.25 to 1.26 in all sub-module and example go.mod f…
intel352 Mar 10, 2026
5450d76
fix: address Go 1.26 lint issues in reverseproxy, scheduler, eventbus
intel352 Mar 10, 2026
8ec80f1
fix: resolve core lint issues (gofmt, errcheck, wrapcheck)
intel352 Mar 10, 2026
ae21c93
fix: resolve go vet false positives on Debug interface in feeders/yam…
intel352 Mar 10, 2026
d0d3f76
fix: correct gofmt formatting and nolint directive syntax
intel352 Mar 10, 2026
26568ef
fix: address Copilot review — mutex safety, slice copy, infinite loop…
intel352 Mar 10, 2026
c7248f4
fix: add gosec G118 suppression for kinesis and custom_memory eventbus
intel352 Mar 10, 2026
393a0e9
fix: pass full dependency graph to computeDepthLevels for accurate pa…
intel352 Mar 11, 2026
139711e
fix: reverseproxy proxy copies must preserve Director for backwards c…
intel352 Mar 11, 2026
c40ebeb
fix: resolve CI failures in examples, configwatcher, contract check, …
intel352 Mar 11, 2026
68985e4
fix: address remaining review comments — races, locking, interfaces, …
intel352 Mar 11, 2026
0483c23
fix: unwrap decorators for builder options, validate dependency hints
intel352 Mar 11, 2026
9dbf0e0
fix: use wrapped static error for dependency hint validation (err113)
intel352 Mar 11, 2026
5dedc9d
feat(eventbus): implement MetricsProvider and Drainable interfaces
intel352 Mar 11, 2026
1361527
feat(cache): implement MetricsProvider and Reloadable interfaces
intel352 Mar 11, 2026
b15c0aa
feat(scheduler): implement MetricsProvider and Drainable interfaces
intel352 Mar 11, 2026
89d13df
feat(database): implement MetricsProvider, Drainable, and Reloadable …
intel352 Mar 11, 2026
595d99a
feat(reverseproxy): implement MetricsProvider and Drainable interfaces
intel352 Mar 11, 2026
1cfda76
feat(httpserver): implement Drainable, Reloadable, and MetricsProvider
intel352 Mar 11, 2026
fdd7c23
chore: bump remaining modules to modular v1.12.1
intel352 Mar 11, 2026
23e1ed3
feat(eventlogger): implement Drainable interface
intel352 Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ This is the Modular Go framework - a structured way to create modular applicatio
## Development Workflow

### Local Development Setup
1. Clone the repository: `git clone https://github.com/CrisisTextLine/modular.git`
1. Clone the repository: `git clone https://github.com/GoCodeAlone/modular.git`
2. Install Go 1.23.0 or later (toolchain uses 1.24.2)
3. Install golangci-lint: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest`
4. Run tests to verify setup: `go test ./... -v`
Expand Down Expand Up @@ -153,7 +153,7 @@ Working example applications:
### CLI Tool (`modcli`)
- Generate new modules: `modcli generate module --name MyModule`
- Generate configurations: `modcli generate config --name MyConfig`
- Install with: `go install github.com/CrisisTextLine/modular/cmd/modcli@latest`
- Install with: `go install github.com/GoCodeAlone/modular/cmd/modcli@latest`

### Debugging Tools
- Debug module interfaces: `modular.DebugModuleInterfaces(app, "module-name")`
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/auto-bump-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '^1.25'
go-version: '^1.26'
check-latest: true

- name: Determine version
Expand All @@ -63,12 +63,12 @@ jobs:
[ -f "$mod" ] || continue
dir=$(dirname "$mod")
# If the require line exists with a version different from CORE, update via go mod edit (portable, avoids sed incompat)
if grep -q "github.com/CrisisTextLine/modular v" "$mod" && ! grep -q "github.com/CrisisTextLine/modular ${CORE}" "$mod"; then
(cd "$dir" && go mod edit -require=github.com/CrisisTextLine/modular@${CORE})
if grep -q "github.com/GoCodeAlone/modular v" "$mod" && ! grep -q "github.com/GoCodeAlone/modular ${CORE}" "$mod"; then
(cd "$dir" && go mod edit -require=github.com/GoCodeAlone/modular@${CORE})
UPDATED=1
fi
# Drop any replace directive pointing to local modular path to avoid accidental pinning
(cd "$dir" && go mod edit -dropreplace=github.com/CrisisTextLine/modular 2>/dev/null || true)
(cd "$dir" && go mod edit -dropreplace=github.com/GoCodeAlone/modular 2>/dev/null || true)
done
if [ "$UPDATED" = 0 ]; then
echo "No module files needed updating"
Expand Down Expand Up @@ -114,10 +114,10 @@ jobs:
run: |
set -euo pipefail
CORE=${{ steps.ver.outputs.core_version }}
OLD=$(git grep -h -o 'github.com/CrisisTextLine/modular v[0-9]\+\.[0-9]\+\.[0-9]\+' -- '*.md' | grep -v $CORE | head -n1 | awk '{print $1}' || true)
OLD=$(git grep -h -o 'github.com/GoCodeAlone/modular v[0-9]\+\.[0-9]\+\.[0-9]\+' -- '*.md' | grep -v $CORE | head -n1 | awk '{print $1}' || true)
# Replace any explicit old version with current in markdown examples
if [ -n "$OLD" ]; then
find . -name '*.md' -print0 | xargs -0 sed -i "" -E "s#github.com/CrisisTextLine/modular v[0-9]+\.[0-9]+\.[0-9]+#github.com/CrisisTextLine/modular ${CORE}#g" || find . -name '*.md' -print0 | xargs -0 sed -i -E "s#github.com/CrisisTextLine/modular v[0-9]+\.[0-9]+\.[0-9]+#github.com/CrisisTextLine/modular ${CORE}#g"
find . -name '*.md' -print0 | xargs -0 sed -i "" -E "s#github.com/GoCodeAlone/modular v[0-9]+\.[0-9]+\.[0-9]+#github.com/GoCodeAlone/modular ${CORE}#g" || find . -name '*.md' -print0 | xargs -0 sed -i -E "s#github.com/GoCodeAlone/modular v[0-9]+\.[0-9]+\.[0-9]+#github.com/GoCodeAlone/modular ${CORE}#g"
fi

- name: Create PR
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/bdd-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ on:
workflow_dispatch:

env:
GO_VERSION: '^1.25'
GO_VERSION: '^1.26'

jobs:
# Discover modules (reused for matrix)
Expand Down Expand Up @@ -67,7 +67,7 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.0 pinned
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CrisisTextLine/modular
slug: GoCodeAlone/modular
files: core-bdd-coverage.txt
flags: core-bdd
- name: Persist core BDD coverage artifact
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.0 pinned
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CrisisTextLine/modular
slug: GoCodeAlone/modular
files: modules/${{ matrix.module }}/bdd-${{ matrix.module }}-coverage.txt
flags: bdd-${{ matrix.module }}
- name: Persist module BDD coverage artifact
Expand Down Expand Up @@ -203,7 +203,7 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.0 pinned
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CrisisTextLine/modular
slug: GoCodeAlone/modular
files: merged-bdd-coverage.txt
flags: merged-bdd
- name: Persist merged BDD coverage artifact
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
branches: [ main ]

env:
GO_VERSION: '^1.25'
GO_VERSION: '^1.26'

jobs:
test:
Expand Down Expand Up @@ -43,7 +43,7 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.0 pinned
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CrisisTextLine/modular
slug: GoCodeAlone/modular
files: coverage.txt
flags: unit
- name: Upload unit coverage artifact
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.0 pinned
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CrisisTextLine/modular
slug: GoCodeAlone/modular
directory: cmd/modcli/
files: cli-coverage.txt
flags: cli
Expand Down Expand Up @@ -192,7 +192,7 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.0 pinned
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CrisisTextLine/modular
slug: GoCodeAlone/modular
files: total-coverage.txt
flags: total
fail_ci_if_error: true
6 changes: 3 additions & 3 deletions .github/workflows/cli-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ on:
default: 'patch'

env:
GO_VERSION: '^1.25'
GO_VERSION: '^1.26'

permissions:
contents: write
Expand Down Expand Up @@ -168,7 +168,7 @@ jobs:
- name: Build
run: |
cd cmd/modcli
go build -v -ldflags "-X github.com/CrisisTextLine/modular/cmd/modcli/cmd.Version=${{ needs.prepare.outputs.version }} -X github.com/CrisisTextLine/modular/cmd/modcli/cmd.Commit=${{ github.sha }} -X github.com/CrisisTextLine/modular/cmd/modcli/cmd.Date=$(date +'%Y-%m-%d')" -o ${{ matrix.artifact_name }}
go build -v -ldflags "-X github.com/GoCodeAlone/modular/cmd/modcli/cmd.Version=${{ needs.prepare.outputs.version }} -X github.com/GoCodeAlone/modular/cmd/modcli/cmd.Commit=${{ github.sha }} -X github.com/GoCodeAlone/modular/cmd/modcli/cmd.Date=$(date +'%Y-%m-%d')" -o ${{ matrix.artifact_name }}
shell: bash

- name: Upload artifact
Expand Down Expand Up @@ -252,7 +252,7 @@ jobs:
- name: Announce to Go proxy
run: |
VERSION="${{ needs.prepare.outputs.version }}"
MODULE_NAME="github.com/CrisisTextLine/modular/cmd/modcli"
MODULE_NAME="github.com/GoCodeAlone/modular/cmd/modcli"

GOPROXY=proxy.golang.org go list -m ${MODULE_NAME}@${VERSION}

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/contract-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ permissions:
actions: read

env:
GO_VERSION: '^1.25'
GO_VERSION: '^1.26'

jobs:
contract-check:
Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:

- name: Checkout PR branch
run: |
git checkout ${{ github.head_ref }}
git checkout ${{ github.event.pull_request.head.sha }}

- name: Extract contracts from PR branch
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: '^1.25'
go-version: '^1.26'
cache-dependency-path: go.sum

# Install Go dependencies and development tools
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/examples-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
workflow_dispatch:

env:
GO_VERSION: '^1.25'
GO_VERSION: '^1.26'

jobs:
validate-examples:
Expand Down Expand Up @@ -448,10 +448,10 @@ jobs:

echo "🔍 Verifying go.mod configuration for ${{ matrix.example }}..."

# Check that replace directives point to correct paths
if ! grep -q "replace.*=> ../../" go.mod; then
# Check that replace directives point to correct local paths
if ! grep -q "replace.*=> \.\./\.\." go.mod; then
echo "❌ Missing or incorrect replace directive in ${{ matrix.example }}/go.mod"
echo "Expected: replace github.com/CrisisTextLine/modular => ../../"
echo "Expected: replace github.com/GoCodeAlone/modular => ../.."
cat go.mod
exit 1
fi
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/module-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ jobs:
if: steps.skipcheck.outputs.changed == 'true'
uses: actions/setup-go@v6
with:
go-version: '^1.25'
go-version: '^1.26'
check-latest: true

- name: Build modcli
Expand Down Expand Up @@ -482,9 +482,9 @@ jobs:

# Construct correct module path with version suffix for v2+
if [ "$MAJOR_VERSION" -ge 2 ]; then
MODULE_NAME="github.com/CrisisTextLine/modular/modules/${MODULE}/v${MAJOR_VERSION}"
MODULE_NAME="github.com/GoCodeAlone/modular/modules/${MODULE}/v${MAJOR_VERSION}"
else
MODULE_NAME="github.com/CrisisTextLine/modular/modules/${MODULE}"
MODULE_NAME="github.com/GoCodeAlone/modular/modules/${MODULE}"
fi

echo "Announcing ${MODULE_NAME}@${VERSION} to Go proxy..."
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/modules-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ on:
workflow_dispatch:

env:
GO_VERSION: '^1.25'
GO_VERSION: '^1.26'

jobs:
# This job identifies which modules have been modified
Expand Down Expand Up @@ -137,7 +137,7 @@ jobs:
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.0 pinned
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: CrisisTextLine/modular
slug: GoCodeAlone/modular
directory: modules/${{ matrix.module }}/
files: ${{ matrix.module }}-coverage.txt
flags: ${{ matrix.module }}
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/release-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '^1.25'
go-version: '^1.26'
check-latest: true
- name: Build modcli
run: |
Expand Down Expand Up @@ -275,7 +275,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '^1.25'
go-version: '^1.26'
check-latest: true
- name: Build modcli
run: |
Expand Down Expand Up @@ -333,9 +333,9 @@ jobs:

# Construct correct module path with version suffix for v2+
if [ "$MAJOR_VERSION" -ge 2 ]; then
MODULE_NAME="github.com/CrisisTextLine/modular/v${MAJOR_VERSION}"
MODULE_NAME="github.com/GoCodeAlone/modular/v${MAJOR_VERSION}"
else
MODULE_NAME="github.com/CrisisTextLine/modular"
MODULE_NAME="github.com/GoCodeAlone/modular"
fi

GOPROXY=proxy.golang.org go list -m ${MODULE_NAME}@${CURR}
Expand All @@ -354,7 +354,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '^1.25'
go-version: '^1.26'
check-latest: true
- name: Build modcli
run: |
Expand All @@ -377,9 +377,9 @@ jobs:
MAJOR_VERSION="${VER#v}"
MAJOR_VERSION="${MAJOR_VERSION%%.*}"
if [ "$MAJOR_VERSION" -ge 2 ]; then
MOD_PATH="github.com/CrisisTextLine/modular/modules/${M}/v${MAJOR_VERSION}"
MOD_PATH="github.com/GoCodeAlone/modular/modules/${M}/v${MAJOR_VERSION}"
else
MOD_PATH="github.com/CrisisTextLine/modular/modules/${M}"
MOD_PATH="github.com/GoCodeAlone/modular/modules/${M}"
fi

if gh release view "$TAG" >/dev/null 2>&1; then
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
if: steps.detect.outputs.core_changed == 'true'
uses: actions/setup-go@v6
with:
go-version: '^1.25'
go-version: '^1.26'
check-latest: true

- name: Build modcli
Expand Down Expand Up @@ -424,9 +424,9 @@ jobs:

# Construct correct module path with version suffix for v2+
if [ "$MAJOR_VERSION" -ge 2 ]; then
MODULE_NAME="github.com/CrisisTextLine/modular/v${MAJOR_VERSION}"
MODULE_NAME="github.com/GoCodeAlone/modular/v${MAJOR_VERSION}"
else
MODULE_NAME="github.com/CrisisTextLine/modular"
MODULE_NAME="github.com/GoCodeAlone/modular"
fi

echo "Announcing ${MODULE_NAME}@${VERSION} to Go proxy..."
Expand Down
2 changes: 1 addition & 1 deletion API_CONTRACT_MANAGEMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ modcli contract extract .
modcli contract extract ./modules/auth

# Extract from remote package
modcli contract extract github.com/CrisisTextLine/modular
modcli contract extract github.com/GoCodeAlone/modular

# Save to file with verbose output
modcli contract extract . -o contract.json -v
Expand Down
8 changes: 4 additions & 4 deletions DOCUMENTATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -968,8 +968,8 @@ import (
"fmt"
"os"

"github.com/CrisisTextLine/modular"
"github.com/CrisisTextLine/modular/modules/database"
"github.com/GoCodeAlone/modular"
"github.com/GoCodeAlone/modular/modules/database"
)

func main() {
Expand Down Expand Up @@ -1423,7 +1423,7 @@ The Modular framework provides several debugging utilities to help diagnose comm
Use `DebugModuleInterfaces` to check which interfaces a specific module implements:

```go
import "github.com/CrisisTextLine/modular"
import "github.com/GoCodeAlone/modular"

// Debug a specific module
modular.DebugModuleInterfaces(app, "your-module-name")
Expand Down Expand Up @@ -1534,7 +1534,7 @@ modular.CompareModuleInstances(originalModule, currentModule, "module-name")
For detailed analysis of why a module doesn't implement Startable:

```go
import "github.com/CrisisTextLine/modular"
import "github.com/GoCodeAlone/modular"

// Check specific module
modular.CheckModuleStartableImplementation(yourModule)
Expand Down
Loading
Loading