Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
8f4cd7c
build(deps): bump actions/checkout from 4 to 7
dependabot[bot] Jul 2, 2026
274e336
Bump coverlet.collector from 6.0.0 to 10.0.1
dependabot[bot] Jul 2, 2026
1d0b920
Bump FluentValidation and FluentValidation.DependencyInjectionExtensions
dependabot[bot] Jul 2, 2026
571439b
Bump MediatR and Microsoft.Extensions.Logging.Abstractions
dependabot[bot] Jul 2, 2026
e24eddb
infra: wire Axlis and Axlis.GraphQL services
marioarce Jul 2, 2026
54a8d19
wiring: add sample Sitecore template POCOs
marioarce Jul 2, 2026
b2b4d0c
showcase: add CQRS Sitecore showcase endpoint
marioarce Jul 2, 2026
f194c2e
docs: rewrite README for Axlis sample
marioarce Jul 2, 2026
ec539a7
sitecore: replace placeholder templates with real Sitecore template d…
marioarce Jul 8, 2026
1c4946a
build: add folder entries for new Sitecore template directories
marioarce Jul 8, 2026
26b64f5
Merge pull request #12 from marioarce/dependabot/nuget/tests/CleanArc…
marioarce Jul 8, 2026
64bcd66
Merge pull request #15 from marioarce/dependabot/nuget/src/CleanArchi…
marioarce Jul 8, 2026
dd15c9e
Merge pull request #14 from marioarce/dependabot/nuget/src/CleanArchi…
marioarce Jul 8, 2026
4c6ca34
Merge pull request #8 from marioarce/dependabot/github_actions/action…
marioarce Jul 8, 2026
4286065
Bump Ardalis.Result and Ardalis.Result.FluentValidation
dependabot[bot] Jul 8, 2026
f9a1e0a
Bump Ardalis.Result and Ardalis.Result.AspNetCore
dependabot[bot] Jul 8, 2026
8c91f40
build(deps): bump actions/setup-dotnet from 4 to 5
dependabot[bot] Jul 8, 2026
b60a65b
Merge pull request #7 from marioarce/dependabot/github_actions/action…
marioarce Jul 8, 2026
991888f
deps: replace local project references with NuGet package references
marioarce Jul 8, 2026
e511596
deps: upgrade PowerCSharp package versions
marioarce Jul 8, 2026
c5353ba
Merge branch 'develop' of github-personal:marioarce/Axlis.CleanArchit…
marioarce Jul 8, 2026
3afa7b9
Merge pull request #11 from marioarce/dependabot/nuget/src/CleanArchi…
marioarce Jul 8, 2026
42ab049
Merge branch 'develop' of github-personal:marioarce/Axlis.CleanArchit…
marioarce Jul 8, 2026
b488875
Merge pull request #10 from marioarce/dependabot/nuget/src/CleanArchi…
marioarce Jul 8, 2026
132fd12
Merge branch 'develop' of github-personal:marioarce/Axlis.CleanArchit…
marioarce Jul 8, 2026
f9ed6e8
deps: upgrade Microsoft.Extensions packages and MediatR to version 10…
marioarce Jul 8, 2026
0e3c799
docs: improve XML documentation comments for Sitecore templates
marioarce Jul 8, 2026
a66e16a
fix: make home path configurable and improve documentation
marioarce Jul 8, 2026
232854d
docs: add API usage documentation to Sitecore showcase handler
marioarce Jul 8, 2026
73af87d
docs: add security policy and enhance API documentation
marioarce Jul 8, 2026
b2dc07d
chore: remove template packaging infrastructure
marioarce Jul 8, 2026
6946312
docs: clean up documentation and code comments
marioarce Jul 8, 2026
3b546f9
test: skip PowerCSharp sample endpoint tests
marioarce Jul 8, 2026
73555c5
Merge pull request #16 from marioarce/feature/axlis-showcase
marioarce Jul 8, 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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: '8.0.x'

Expand Down
59 changes: 0 additions & 59 deletions .github/workflows/release.yml

This file was deleted.

43 changes: 0 additions & 43 deletions .template.config/template.json

This file was deleted.

56 changes: 56 additions & 0 deletions CHANGELOG.AXLIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Changelog - Axlis.CleanArchitecture.Sample

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

---

## [Unreleased]

---

## [0.1.0] - 2026-07-08

### Added

- Initial public release of Axlis.CleanArchitecture.Sample
- Axlis v0.1.0 integration (Axlis, Axlis.Abstractions, Axlis.Core, Axlis.GraphQL)
- Sitecore template POCOs: SampleItem, Language, MainSection, Node, PublishingTarget
- CQRS showcase endpoint `/v1/sitecore/showcase` demonstrating six Axlis API pivots:
- TextField access (SampleItem.Title, SampleItem.Text)
- Axes traversal (Parent, Children, Grandparent, Siblings)
- GetDescendants with template filtering (Language items)
- WithResult rich API (Metadata and DiagnosticsData)
- Comprehensive XML documentation for all Sitecore template classes
- Developer notes in GetSitecoreShowcaseQueryHandler explaining Axlis API usage
- Updated NuGet package references from preview versions to stable v0.1.0
- Removed local NuGet source from NuGet.Config (now uses only nuget.org)
- Documentation strategy: .AXLIS.md suffix files for Axlis-specific documentation

### Changed

- Updated dependency versions:
- Ardalis.Result: 9.1.0 → 10.1.0
- FluentValidation: 11.9.2 → 12.1.1
- MediatR: 12.3.0 → 14.1.0
- Microsoft.Extensions.* packages: 8.0.x → 10.0.0
- PowerCSharp.Feature.Cache: 1.3.1 → 1.3.2
- Fixed GetSitecoreShowcaseQuery to use request.RootPath parameter instead of hardcoded path
- Fixed typo in GetSitecoreShowcaseResponse: "PAxes" → "Axes"

### Documentation

- Added comprehensive XML documentation to all Sitecore template classes
- Added detailed developer notes in GetSitecoreShowcaseQueryHandler explaining:
- ISitecoreFacade usage and setup
- GetItemByPathAsync vs GetItemByPathWithResultAsync
- Template POCO field access patterns
- Axes traversal and lazy-loading behavior
- GetDescendants performance considerations
- Caching strategy and configuration
- Enhanced pivot class documentation in GetSitecoreShowcaseResponse

[Unreleased]: https://github.com/marioarce/Axlis.CleanArchitecture.Sample/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/marioarce/Axlis.CleanArchitecture.Sample/releases/tag/v0.1.0
167 changes: 167 additions & 0 deletions CONTRIBUTING.AXLIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
# Contributing to Axlis.CleanArchitecture.Sample

Thank you for your interest in contributing to this Axlis sample project. This document covers how to propose changes, coding standards, and the review process specific to this demonstration project.

---

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [How to Contribute](#how-to-contribute)
- [Development Setup](#development-setup)
- [Coding Standards](#coding-standards)
- [Commit Message Format](#commit-message-format)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Reporting Bugs](#reporting-bugs)
- [Requesting Features](#requesting-features)

---

## Code of Conduct

This project follows the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you agree to uphold it. Please report unacceptable behavior to the project maintainer.

---

## How to Contribute

1. **Search existing issues** before opening a new one — your question or bug may already be tracked.
2. **Open an issue** for non-trivial changes before writing code. This allows design discussion and avoids wasted effort.
3. **Fork** the repository and create a dedicated branch from `main`:
```bash
git checkout -b feat/my-feature
```
4. **Implement** your change following the coding standards below.
5. **Test** your change — all existing tests must pass and new behavior should have test coverage.
6. **Push** your branch and open a **Pull Request** against `main`.

---

## Development Setup

### Prerequisites

- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
- Git
- Sitecore Headless GraphQL endpoint (for integration testing)

### Steps

```bash
git clone https://github.com/marioarce/Axlis.CleanArchitecture.Sample.git
cd Axlis.CleanArchitecture.Sample

dotnet restore
dotnet build
dotnet test
```

All Axlis packages resolve from nuget.org — no additional local feed setup is required.

### Configure Sitecore Connection

Set user-secrets for the Sitecore GraphQL endpoint:

```bash
cd src/CleanArchitecture.WebApi
dotnet user-secrets set "AxlisGraphQL:Endpoint" "https://your-sitecore-instance/sitecore/api/graph/edge"
dotnet user-secrets set "AxlisGraphQL:ApiKey" "{YOUR-API-KEY}"
```

---

## Coding Standards

This repo follows the conventions defined in `.editorconfig`. Key rules:

- **File-scoped namespaces** — required (`namespace Foo;` not `namespace Foo { ... }`).
- **Explicit accessibility modifiers** — always required (`public`, `private`, etc.).
- **Nullable reference types** — enabled globally; no `!` suppressions without justification.
- **No `this.` prefix** — avoid qualifying members with `this.`.
- **`var`** — use only when the type is evident from the right-hand side.
- **XML doc comments** — required on all `public` members.
- **No trailing whitespace**, LF line endings, UTF-8 encoding.

The build enforces code style (`EnforceCodeStyleInBuild = true`). A build that introduces style violations will fail.

### Axlis-Specific Guidelines

- **Template POCOs**: All Sitecore template classes must inherit from `ExtendedItem` and use `[SitecoreTemplate]` attribute
- **Field Properties**: Use `[SitecoreField]` attribute with the exact Sitecore field name (case-insensitive)
- **XML Documentation**: Provide comprehensive XML docs for all template classes explaining their purpose and fields
- **Handler Documentation**: Add developer notes (`/* DevNote: */`) explaining Axlis API usage patterns

---

## Commit Message Format

```
<scope>: <description>

<changes>
```

- **Scope** is required. Use the area being changed (e.g. `docs`, `axlis`, `template`, `chore`, `feat`, `fix`).
- **Description** is a short imperative sentence (no period at end).
- **Changes** are bullet points (`- `) summarising what was done.
- No emojis in commit messages.

Example:

```
feat: add Language template POCO

- Add Language class inheriting from ExtendedItem
- Add fields: Charset, CodePage, Dictionary, Encoding, FallbackLanguage, Iso, RegionalIsoCode
- Add comprehensive XML documentation
- Update GetSitecoreShowcaseQueryHandler to use Language template
```

---

## Pull Request Guidelines

- Keep PRs **focused** — one logical change per PR.
- Fill out the [PR template](.github/pull_request_template.md) completely.
- Ensure all CI checks pass before requesting review.
- Update `CHANGELOG.AXLIS.md` under the `[Unreleased]` section.
- Do not force-push to a PR branch after review has started.
- For template-related changes, ensure they don't conflict with the base PowerCSharp.CleanArchitecture.Template structure.

---

## Reporting Bugs

Use the [Bug Report issue template](.github/ISSUE_TEMPLATE/bug_report.yml). Include:

- Steps to reproduce
- Expected vs actual behaviour
- .NET SDK version and OS
- Sitecore version (if applicable)
- Axlis package versions

---

## Requesting Features

Use the [Feature Request issue template](.github/ISSUE_TEMPLATE/feature_request.yml). Explain:

- The problem you are trying to solve
- The proposed solution
- Alternatives you have considered
- How this feature would benefit the Axlis community

---

## Documentation Strategy

This project uses a `.AXLIS.md` suffix for documentation files that are specific to this sample project:

- `CHANGELOG.AXLIS.md` - Axlis-specific changelog (this file)
- `CONTRIBUTING.AXLIS.md` - Axlis-specific contribution guidelines (this file)
- `SECURITY.AXLIS.md` - Axlis-specific security policy
- `README.md` - Main project documentation (already Axlis-specific)

The original template files (`CHANGELOG.md`, `CONTRIBUTING.md`, `SECURITY.md`) are preserved from the base PowerCSharp.CleanArchitecture.Template for comparison and reference when merging template updates.

When updating from the base template, merge the original files and review the `.AXLIS.md` files separately to ensure Axlis-specific content is preserved.
49 changes: 0 additions & 49 deletions PowerCSharp.CleanArchitecture.Template.csproj

This file was deleted.

Loading