Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
fb2fc6a
feat: simplify external module storage and add module management comm…
hinriksnaer Jan 2, 2026
0248488
fix(module): require nodejs module for npm packages like cargo
hinriksnaer Jan 2, 2026
eb211c2
feat(rpm): add nodejs as required dependency
hinriksnaer Jan 2, 2026
46b26ba
fix(module): fail properly when cargo not found
hinriksnaer Jan 2, 2026
7438473
feat(rpm): add rust and cargo as required dependencies
hinriksnaer Jan 2, 2026
31c5672
feat(ssh): check stable socket before starting new agent
hinriksnaer Jan 4, 2026
3b03d1b
fix(ssh): use correct exit codes for ssh-add agent detection
hinriksnaer Jan 4, 2026
2491c98
feat(ssh): add fish config for stable SSH agent socket
hinriksnaer Jan 4, 2026
547ee7e
docs: update for release - remove ssh-clusters, add source commands
hinriksnaer Jan 5, 2026
8648f1b
fix(ssh): create stable socket symlink when starting new agent
hinriksnaer Jan 5, 2026
96f4a4f
fix(ssh): validate stable socket is responsive before using it
hinriksnaer Jan 5, 2026
633b9ba
fix(spec): prevent .config directory from being owned by root
hinriksnaer Jan 11, 2026
6072c2d
Merge main into unstable: sync upstream changes
hinriksnaer Jan 13, 2026
c7a0210
feat(profile): preserve git URLs in fedpunk.yaml for declarative conf…
hinriksnaer Jan 13, 2026
f347391
fix(config): use clean environment for yq to avoid shell pollution (#50)
hinriksnaer Jan 13, 2026
8fc11b5
fix(yq): apply clean environment wrapper across all yq calls
hinriksnaer Jan 14, 2026
d3ad440
fix(env): write environment configs to system-wide locations
hinriksnaer Jan 15, 2026
f29f6af
fix(env): write environment configs to user-level locations
hinriksnaer Jan 15, 2026
fd220cd
fix(deploy): generate env config after module deployment
hinriksnaer Jan 15, 2026
f092c99
fix(config): prevent duplicate modules in fedpunk.yaml
hinriksnaer Jan 15, 2026
17eaccc
fix(module-resolver): source paths.fish for FEDPUNK_USER/FEDPUNK_SYSTEM
hinriksnaer Jan 15, 2026
9540e7c
fix(config): prevent duplicate modules from profile's mode.yaml
hinriksnaer Mar 6, 2026
f2b116a
Merge branch 'main' into unstable
hinriksnaer Mar 6, 2026
ddda02d
docs(readme): rewrite intro to emphasize end-to-end orchestration
hinriksnaer Mar 13, 2026
c89cd44
docs(readme): add Configuration section with fedpunk.yaml details
hinriksnaer Mar 13, 2026
c45ccfb
docs(readme): remove incorrect root-level params field
hinriksnaer Mar 13, 2026
7af2eaf
Merge docs/readme-update: README improvements
hinriksnaer Mar 13, 2026
add83f5
fix: remove hardcoded theme symlink from core
hinriksnaer Mar 13, 2026
ce9c632
refactor: reorganize test directory structure
hinriksnaer Mar 13, 2026
94d6770
feat(config): restructure profile config with name, source, and mode
hinriksnaer Mar 13, 2026
9533080
fix(test): build from source directory, not git
hinriksnaer Mar 13, 2026
85e0cda
docs(readme): use https URLs instead of git@
hinriksnaer Mar 13, 2026
a8e768e
fix(config): fix variable scoping in profile getter functions
hinriksnaer Mar 13, 2026
13745cc
fix(config): never overwrite existing config on fresh install
hinriksnaer Mar 13, 2026
e1a4a9b
test(env): add test for module environment variable injection
hinriksnaer Mar 13, 2026
c2cd18d
docs: document environment variable injection in module.yaml
hinriksnaer Mar 13, 2026
183c992
docs(readme): remove ssh module references
hinriksnaer Mar 13, 2026
f91bfad
docs: remove fedpunk-minimal references (doesn't exist)
hinriksnaer Mar 13, 2026
e03a2e4
docs(readme): expand profiles section and directory structure
hinriksnaer Mar 13, 2026
e48a0c7
test(params): add test for module parameter injection
hinriksnaer Mar 13, 2026
4ba3b07
docs: restore ssh module references
hinriksnaer Mar 13, 2026
e9c5b09
docs(readme): add Module CLI and TUI support sections
hinriksnaer Mar 13, 2026
7a71528
fix(params): inject default parameter values from module.yaml
hinriksnaer Mar 13, 2026
6a52eed
docs(readme): simplify custom modules, reference template repo
hinriksnaer Mar 13, 2026
55d3fcc
feat: add module-template as submodule in examples/
hinriksnaer Mar 13, 2026
73def6e
chore: configure module-template submodule to track main branch
hinriksnaer Mar 13, 2026
d04361c
fix: update docs for minimal core architecture
hinriksnaer Mar 13, 2026
2868b3f
test: add comprehensive CI tests for advanced features
hinriksnaer Mar 13, 2026
e20f17d
test: add comprehensive test suite with parallel CI
hinriksnaer Mar 13, 2026
cecaab6
fix(test): use stow instead of deploy in E2E test
hinriksnaer Mar 14, 2026
6d77041
fix(test): fix test-profile-git-urls.sh path and config format
hinriksnaer Mar 14, 2026
6ef75a0
chore: remove MIGRATION.md
hinriksnaer Mar 14, 2026
33ae391
docs: add CHANGELOG.md
hinriksnaer Mar 14, 2026
790b252
fix: remove DEBUG output from module deployment
hinriksnaer Mar 14, 2026
597c21b
test: verify shells actually load environment variables
hinriksnaer Mar 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions .devcontainer/Dockerfile

This file was deleted.

14 changes: 0 additions & 14 deletions .devcontainer/devcontainer.json

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/test-cli-functionality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
PATH: /root/.local/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
run: |
source /etc/profile.d/fedpunk.sh
bash test/test-cli-commands.sh
bash test/ci/test-cli-commands.sh

- name: Verify CLI summary
run: |
Expand Down
147 changes: 147 additions & 0 deletions .github/workflows/test-comprehensive.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
name: Comprehensive Tests

on:
push:
branches: [ main, unstable ]
pull_request:
branches: [ main, unstable ]
workflow_dispatch:

jobs:
# Fast unit tests - run in parallel
unit-tests:
runs-on: ubuntu-latest
container:
image: fedora:43
strategy:
fail-fast: false
matrix:
test:
- test-module-ref-parser
- test-yaml-reproducibility
- test-module-params
- test-module-environment
- test-disabled-modules
- test-config-preservation

steps:
- name: Install dependencies
run: dnf install -y git fish yq jq

- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true

- name: Run ${{ matrix.test }}
env:
HOME: /root
run: |
chmod +x test/ci/${{ matrix.test }}.sh
timeout 60 bash test/ci/${{ matrix.test }}.sh

# Module system tests - slightly slower
module-tests:
runs-on: ubuntu-latest
container:
image: fedora:43
strategy:
fail-fast: false
matrix:
test:
- test-stow-conflicts
- test-lifecycle-hooks
- test-external-modules
- test-sources-management
- test-template-module
- test-profile-git-urls

steps:
- name: Install dependencies
run: dnf install -y git fish yq jq stow

- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true

- name: Run ${{ matrix.test }}
env:
HOME: /root
run: |
chmod +x test/ci/${{ matrix.test }}.sh
timeout 90 bash test/ci/${{ matrix.test }}.sh

# CLI integration test
cli-integration:
runs-on: ubuntu-latest
container:
image: fedora:43

steps:
- name: Install dependencies
run: dnf install -y git fish yq jq stow

- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true

- name: Run CLI integration tests
env:
HOME: /root
run: |
chmod +x test/ci/test-cli-integration.sh
timeout 120 bash test/ci/test-cli-integration.sh

# Dependency resolution test (creates temp modules)
dependency-resolution:
runs-on: ubuntu-latest
container:
image: fedora:43

steps:
- name: Install dependencies
run: dnf install -y git fish yq jq stow

- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true

- name: Run dependency resolution tests
env:
HOME: /root
run: |
chmod +x test/ci/test-dependency-resolution.sh
timeout 120 bash test/ci/test-dependency-resolution.sh

# Summary job - depends on all tests
test-summary:
needs: [unit-tests, module-tests, cli-integration, dependency-resolution]
runs-on: ubuntu-latest
if: always()

steps:
- name: Check test results
run: |
echo "========================================="
echo "Comprehensive Test Summary"
echo "========================================="
echo ""
echo "Unit tests: ${{ needs.unit-tests.result }}"
echo "Module tests: ${{ needs.module-tests.result }}"
echo "CLI integration: ${{ needs.cli-integration.result }}"
echo "Dependency resolution: ${{ needs.dependency-resolution.result }}"
echo ""

if [[ "${{ needs.unit-tests.result }}" == "success" && \
"${{ needs.module-tests.result }}" == "success" && \
"${{ needs.cli-integration.result }}" == "success" && \
"${{ needs.dependency-resolution.result }}" == "success" ]]; then
echo "All tests passed!"
exit 0
else
echo "Some tests failed!"
exit 1
fi
2 changes: 1 addition & 1 deletion .github/workflows/test-core-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
PATH: /root/.local/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
run: |
source /etc/profile.d/fedpunk.sh
bash test/test-core-modules.sh
bash test/ci/test-core-modules.sh

- name: Verify installation summary
run: |
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[submodule "config/neovim/.config/nvim"]
path = config/neovim/.config/nvim
url = https://github.com/hinriksnaer/nvim.git
[submodule "examples/module-template"]
path = examples/module-template
url = https://github.com/hinriksnaer/fedpunk-module-template.git
branch = main
Loading
Loading