Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
ad5cfec
chore: update versions
AngelMunoz Nov 13, 2024
f6266af
Refactor Router and RouteContext for improved modularity
AngelMunoz Nov 13, 2024
6125ffc
Replace ValueTask with CancellableValueTask
AngelMunoz Nov 13, 2024
cab1981
Refactor Route module and add cancellation support
AngelMunoz Nov 13, 2024
971c89e
chore: run fantomas
AngelMunoz Nov 13, 2024
98bff0f
fix: use renamed function
AngelMunoz Nov 13, 2024
1538026
fix: ensure the dictionary is not null (Some null) when coming from C#
AngelMunoz Nov 13, 2024
ef64065
Refactor navigation to handle cancellation tokens
AngelMunoz Nov 13, 2024
f507b90
chore: set language version to preview
AngelMunoz Nov 13, 2024
23258aa
chore: bump version
AngelMunoz Nov 13, 2024
266d3cd
docs: update docs
AngelMunoz Nov 14, 2024
0171412
docs: update router to use async activation and deactivation
AngelMunoz Nov 14, 2024
1c8aabe
chore: update CI configs
AngelMunoz Nov 14, 2024
3cc82b5
chore: remove unneded parens
AngelMunoz Nov 14, 2024
4fc2519
feature: make redirection work after the refactor
AngelMunoz Nov 14, 2024
16eda00
bump version
AngelMunoz Nov 14, 2024
95afc41
chore: update CI
AngelMunoz Nov 14, 2024
45aa80e
.
AngelMunoz Nov 14, 2024
b4ebcc3
chore: update fsproj files
AngelMunoz Nov 27, 2024
2fc84bd
feat: add new Navs.Terminal.Gui library under the umbrella
AngelMunoz Nov 27, 2024
8ec742a
refactor: remove unused history stuf, will revisit later
AngelMunoz Nov 27, 2024
451ab98
feat: fix nullability warnings in Navs.Avalonia
AngelMunoz Nov 27, 2024
9fc3b36
samples: add TGUI sample
AngelMunoz Nov 27, 2024
0f3bd64
feat: add missing outlet
AngelMunoz Nov 27, 2024
acd41e8
chore: run fantomas
AngelMunoz Nov 27, 2024
020bcce
chore: add debug targets for TGUI sample
AngelMunoz Nov 27, 2024
1678180
chore: bump version
AngelMunoz Nov 27, 2024
89ad8cf
docs: add Navs.Terminal.Gui wip
AngelMunoz Nov 27, 2024
200ff8f
chore: update devcontainer settings
AngelMunoz Nov 30, 2024
bc32c71
feat: add convenience methods and fns to get query params
AngelMunoz Nov 30, 2024
bcb20a9
chore: run fantomas
AngelMunoz Nov 30, 2024
9db5261
chore: bump version
AngelMunoz Nov 30, 2024
9b14290
docs: update docs to reflect changes introduced in rc 005
AngelMunoz Nov 30, 2024
704d751
docs: enable build from vnext
AngelMunoz Nov 30, 2024
45fc8ef
docs: update index docs
AngelMunoz Nov 30, 2024
5dc5e6c
Merge branch 'vnext' of github.com:AngelMunoz/Navs into vnext
AngelMunoz Nov 30, 2024
3d44c26
chore: attempt to fix docs generation
AngelMunoz Nov 30, 2024
d6aceeb
chore(projects): update Avalonia and NXUI package versions
AngelMunoz May 16, 2025
4f776ee
bump version
AngelMunoz May 16, 2025
bc8eb37
chore: update tool versions and enable nullable types
AngelMunoz Jun 3, 2025
68f3d51
Merge branch 'vnext' of github.com:AngelMunoz/Navs into vnext
AngelMunoz Jun 3, 2025
dae4866
feat(logging): add logging support to router implementations
AngelMunoz Jun 4, 2025
3675cff
feat(router): add logging capabilities to navigation
AngelMunoz Jun 4, 2025
0efc651
samples(Routerish): add console logging to Program.fs
AngelMunoz Jun 4, 2025
8d82403
feat(samples): add NxuiDeclarative project and build task
AngelMunoz Jun 4, 2025
0560cb7
fix(routes): ensure all route handlers return Control type
AngelMunoz Jun 4, 2025
369da11
feat(routes): enhance route definitions and add guard types
AngelMunoz Jun 4, 2025
9913e4d
samples(csharptoo): handle null routeParams in NavigateByName
AngelMunoz Jun 4, 2025
f4db4e0
samples: fix samples
AngelMunoz Jun 4, 2025
d58c622
feat(routes): enhance Routes and RouterOutlet initialization
AngelMunoz Jun 4, 2025
cee0838
chore: bump version
AngelMunoz Jun 4, 2025
6c0236b
chore: bump avalonia dependency version
AngelMunoz Jun 17, 2025
e99d44d
chore: bump version
AngelMunoz Jun 17, 2025
fe0b96c
chore: upgrade dependencies and migrate to central package management…
AngelMunoz Jun 25, 2026
c9ea8b6
chore: modernize workflows
AngelMunoz Jun 25, 2026
7b2396e
fix: address review findings - dispose ordering, redirect cycle/depth…
AngelMunoz Jun 25, 2026
9c8d3b5
refactor: rename maxRedirectDepth to maxCyclicRedirects, fix xmldoc
AngelMunoz Jun 25, 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
36 changes: 20 additions & 16 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
{
"version": 1,
"isRoot": true,
"tools": {
"fantomas": {
"version": "6.3.16",
"commands": ["fantomas"],
"rollForward": true
},
"fsdocs-tool": {
"version": "20.0.1",
"commands": ["fsdocs"],
"rollForward": true
}
}
}
{
"version": 1,
"isRoot": true,
"tools": {
"fantomas": {
"version": "7.0.5",
"commands": [
"fantomas"
],
"rollForward": true
},
"fsdocs-tool": {
"version": "22.1.0",
"commands": [
"fsdocs"
],
"rollForward": true
}
}
}
4 changes: 2 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04

RUN curl -fsSL https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh | bash /dev/stdin -c 8.0 --install-dir /home/vscode/.dotnet
RUN curl -fsSL https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh | bash /dev/stdin -c 10.0 --install-dir /home/vscode/.dotnet

ENV DOTNET_ROOT=/home/vscode/.dotnet
ENV PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
Expand Down
1 change: 1 addition & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"extensions": [
"Ionide.Ionide-fsharp",
"ms-dotnettools.csharp",
"ms-dotnettools.vscode-dotnet-runtime",
"EditorConfig.EditorConfig",
//"GitHub.copilot",
//"GitHub.copilot-chat",
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ on:
push:
branches:
- main
- vnext
paths:
- docs/**
- .github/workflows/docs.yml

# We need some permissions to publish to Github Pages
permissions:
Expand All @@ -18,11 +20,11 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: 8.0.x
dotnet-version: 10.0.x
- name: Restore tools
run: dotnet tool restore
- name: Build code
Expand Down
26 changes: 6 additions & 20 deletions .github/workflows/library.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,21 @@ on:
- dev
paths:
- src/**
- tests/**
pull_request:
branches: [main]
paths:
- src/**
- tests/**

jobs:
build:
runs-on: ubuntu-latest
name: Build dotnet 8.0
name: Build
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup dotnet
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
dotnet-version: "10.0.x"
- run: dotnet restore
- run: dotnet build Navs.sln -f net8.0 --configuration Release --no-restore
- run: dotnet test Navs.sln -f net8.0 --no-restore
buildnet6:
runs-on: ubuntu-latest
name: Build dotnet 6.0
steps:
- uses: actions/checkout@v4
- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: "6.0.x"
- run: dotnet restore
- run: dotnet build Navs.sln -f net6.0 --configuration Release --no-restore
- run: dotnet test Navs.sln -f net6.0 --no-restore
- run: dotnet build Navs.slnx --configuration Release --no-restore
- run: dotnet test Navs.slnx --no-restore
92 changes: 92 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Create Release

on:
workflow_dispatch:

jobs:
create-release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Extract Release Data
id: extract
run: |
VERSION_LINE=$(grep -n "^## \[[0-9]" CHANGELOG.md | head -n 1)

if [ -z "$VERSION_LINE" ]; then
echo "No version found in CHANGELOG.md"
exit 1
fi

LINE_NUM=$(echo "$VERSION_LINE" | cut -d: -f1)
VERSION=$(echo "$VERSION_LINE" | sed -E 's/.*## \[([^]]+)\].*/\1/')

echo "Found version: $VERSION at line $LINE_NUM"

NEXT_HEADER_LINE=$(tail -n +$((LINE_NUM + 1)) CHANGELOG.md | grep -n "^## \[" | head -n 1 | cut -d: -f1)

if [ -z "$NEXT_HEADER_LINE" ]; then
BODY=$(tail -n +$((LINE_NUM + 1)) CHANGELOG.md)
else
BODY=$(tail -n +$((LINE_NUM + 1)) CHANGELOG.md | head -n $((NEXT_HEADER_LINE - 1)))
fi

echo "$BODY" > RELEASE_NOTES.md

echo "version=$VERSION" >> $GITHUB_OUTPUT

- name: Check if Tag Exists
id: check_tag
run: |
if git rev-parse "v${{ steps.extract.outputs.version }}" >/dev/null 2>&1; then
echo "Tag v${{ steps.extract.outputs.version }} already exists."
echo "exists=true" >> $GITHUB_OUTPUT
else
echo "exists=false" >> $GITHUB_OUTPUT
fi

- name: Setup .NET
if: steps.check_tag.outputs.exists == 'false'
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x

- name: Install dotnet tools
if: steps.check_tag.outputs.exists == 'false'
run: dotnet tool restore

- name: Restore dependencies
if: steps.check_tag.outputs.exists == 'false'
run: dotnet restore

- name: Run Tests
if: steps.check_tag.outputs.exists == 'false'
run: dotnet test --configuration Release --no-restore

- name: Build
if: steps.check_tag.outputs.exists == 'false'
run: dotnet build --configuration Release --no-restore

- name: Pack
if: steps.check_tag.outputs.exists == 'false'
run: dotnet pack --configuration Release --no-build --output nupkgs

- name: Publish to NuGet
if: steps.check_tag.outputs.exists == 'false'
run: dotnet nuget push "nupkgs/*.nupkg" --api-key ${{ secrets.NUGET_DEPLOY_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate

- name: Create Release
if: steps.check_tag.outputs.exists == 'false'
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ steps.extract.outputs.version }}
name: v${{ steps.extract.outputs.version }}
body_path: RELEASE_NOTES.md
draft: false
prerelease: ${{ contains(steps.extract.outputs.version, '-rc') || contains(steps.extract.outputs.version, '-beta') || contains(steps.extract.outputs.version, '-alpha') }}
files: nupkgs/*.nupkg
13 changes: 6 additions & 7 deletions .github/workflows/samples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ on:
- dev
paths:
- src/**
- tests/**
- samples/**
pull_request:
branches:
Expand All @@ -20,12 +19,12 @@ on:
jobs:
build:
runs-on: ubuntu-latest
name: Build dotnet 8.0
name: Build dotnet 10.0
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup dotnet
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
- run: dotnet restore samples/Samples.sln
- run: dotnet build samples/Samples.sln -f net8.0 --configuration Release --no-restore
dotnet-version: "10.0.x"
- run: dotnet restore samples/Samples.slnx
- run: dotnet build samples/Samples.slnx -f net10.0 --configuration Release --no-restore
28 changes: 27 additions & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,31 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug Terminal.Gui Sample",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build:tgui",
"program": "${workspaceFolder}/samples/TGUI/bin/Debug/net9.0/TGUI.dll",
"args": [
"tgui:///login?username=admin"
],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"console": "externalTerminal"
},
{
"name": "Debug Declarative Sample",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build:declarative",
"program": "${workspaceFolder}/samples/NxuiDeclarative/bin/Debug/net9.0/NxuiDeclarative.dll",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"console": "integratedTerminal"
},

{
"name": "Debug Router Tests",
"type": "coreclr",
Expand All @@ -14,6 +39,7 @@
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"console": "internalConsole"
}
},

]
}
32 changes: 32 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,38 @@
"-f",
"net8.0"
]
},
{
"command": "dotnet",
"label": "build:tgui",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$msCompile",
"args": [
"build",
"${workspaceFolder}/samples/TGUI/TGUI.fsproj",
"-f",
"net9.0"
]
},
{
"command": "dotnet",
"label": "build:declarative",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$msCompile",
"args": [
"build",
"${workspaceFolder}/samples/NxuiDeclarative/NxuiDeclarative.fsproj",
"-f",
"net9.0"
]
}
]
}
Loading