Skip to content

Commit 3b634cf

Browse files
authored
docs: add AGENTS.md and update contributing guidelines (#24)
## Summary - add AGENTS.md that directs agents to CONTRIBUTING.md - expand CONTRIBUTING.md with root-solution commands, central package management notes, parser guidance, and PR conventions - bump package version from 0.2.1 to 0.3.0
1 parent a503f63 commit 3b634cf

3 files changed

Lines changed: 58 additions & 4 deletions

File tree

AGENTS.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# AGENTS.md
2+
3+
## Instructions
4+
5+
- Follow `CONTRIBUTING.md` for repository layout, commands, parser guidelines, and PR conventions.
6+
- Treat `CONTRIBUTING.md` as the source of truth when it conflicts with this file.
7+
- For automated edits, keep changes narrowly scoped and avoid committing generated `bin`, `obj`, or package output files.

CONTRIBUTING.md

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
1-
# Contributing guidelines
1+
# Contributing Guidelines
22

3-
## Pre-requisites
3+
## Prerequisites
44

5-
- [.NET 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
5+
- Install the supported .NET SDKs for the target frameworks listed in `Directory.Build.props`.
6+
- This repository currently targets `net8.0`, `net9.0`, and `net10.0`.
7+
8+
## Repository Layout
9+
10+
- `AEMO.MDFF.sln` is the root solution.
11+
- Library code lives in `src/AEMO.MDFF`.
12+
- Tests and sample data live in `src/AEMO.MDFF.Tests`.
13+
- Shared MSBuild settings live in `Directory.Build.props`.
14+
- Central NuGet package versions live in `Directory.Packages.props`.
15+
16+
## Build And Test
17+
18+
Run commands from the repository root:
19+
20+
```shell
21+
dotnet restore AEMO.MDFF.sln
22+
dotnet build AEMO.MDFF.sln
23+
dotnet test AEMO.MDFF.sln
24+
```
25+
26+
If your local machine has a newer .NET runtime but not every older targeted runtime, use:
27+
28+
```shell
29+
DOTNET_ROLL_FORWARD=Major dotnet test AEMO.MDFF.sln
30+
```
31+
32+
To validate packaging after a Release build:
33+
34+
```shell
35+
dotnet build AEMO.MDFF.sln --configuration Release
36+
dotnet pack AEMO.MDFF.sln --configuration Release --no-build --output nupkgs
37+
```
38+
39+
## Pull Requests
40+
41+
- Use conventional commits, for example `fix(nem12): ...`, `feat(nem13): ...`, or `chore(build): ...`.
42+
- Keep each PR focused on one concern where practical.
43+
- Include tests for parser behavior changes and malformed record ordering.
44+
- Do not commit generated `bin`, `obj`, or local package output files.
45+
46+
## Parser Guidelines
47+
48+
- Keep MDFF readers streaming: parse one CSV row at a time and yield records incrementally.
49+
- Avoid parser state that survives across calls to `ReadAsync`.
50+
- Keep per-record allocations bounded.
51+
- Model optional MDFF fields as nullable.
52+
- Use explicit `InvalidDataException` messages for invalid record ordering or unsupported record types.

src/AEMO.MDFF/AEMO.MDFF.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
5-
<Version>0.2.1</Version>
5+
<Version>0.3.0</Version>
66
<Title>AEMO.MDFF</Title>
77
<Authors>Akhan Zhakiyanov</Authors>
88
<Description>Parser for Australian Energy Market Operator (AEMO) Meter Data File Format (MDFF) specification</Description>

0 commit comments

Comments
 (0)