Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1bab9c963d | |||
| 6b68f099fa | |||
| b09777252b |
@@ -6,6 +6,7 @@ This file is the authoritative source for hrynco-ef workflow, delivery, and role
|
||||
|
||||
- Command timeout: if a command runs longer than 10 minutes, report timeout and ask the user.
|
||||
- Validate required services before task work:
|
||||
- YouTrack authenticated access
|
||||
- Gitea authenticated access and the `hrynco/hrynco-ef` repo
|
||||
- TeamCity authenticated access
|
||||
- If any startup check fails, stop and ask the user.
|
||||
@@ -29,6 +30,7 @@ Print one startup report line per check:
|
||||
Required report items:
|
||||
|
||||
- Workflow rules loaded
|
||||
- YouTrack auth + reachability
|
||||
- Gitea auth + reachability
|
||||
- Gitea resource access (`hrynco/hrynco-ef`)
|
||||
- TeamCity auth + reachability
|
||||
@@ -45,7 +47,7 @@ Required report items:
|
||||
- local `development` must match remote
|
||||
- if not, fix that first
|
||||
- On task start:
|
||||
- create a Gitea issue in `hrynco/hrynco-ef` if one does not exist
|
||||
- set YouTrack state to `In Progress`
|
||||
- create a feature branch from `development`
|
||||
- name the branch after the task
|
||||
- Work only in the feature branch.
|
||||
@@ -54,12 +56,12 @@ Required report items:
|
||||
|
||||
### Issue lifecycle
|
||||
|
||||
1. Product analyst creates/refines the Gitea issue.
|
||||
2. Developer takes the issue and starts implementation.
|
||||
1. Product analyst creates/refines the YouTrack task.
|
||||
2. Developer takes the task and starts implementation.
|
||||
3. Developer finishes implementation and hands off to code review.
|
||||
4. Code reviewer reviews and either passes or returns to developer.
|
||||
5. Repeat developer/reviewer cycles as needed.
|
||||
6. Maximum five review rounds total for the same unresolved issue state.
|
||||
6. Maximum five review rounds total for the same unresolved task state.
|
||||
7. After review round five, if still unresolved, return to product analysis.
|
||||
8. Tester validates the implementation against acceptance criteria.
|
||||
9. Developer waits for user validation approval.
|
||||
@@ -67,7 +69,7 @@ Required report items:
|
||||
|
||||
### Task rules
|
||||
|
||||
- Create the Gitea issue before development starts.
|
||||
- Create the YouTrack task before development starts.
|
||||
- Default assignee is AI unless the task flow requires another assignee.
|
||||
- Define scope and acceptance criteria.
|
||||
- Tasks must be independently deliverable and testable.
|
||||
@@ -87,17 +89,22 @@ After explicit user validation approval:
|
||||
- push the feature branch
|
||||
- create PR from feature branch to `development`
|
||||
- merge that PR
|
||||
- **do not merge to `main` unless a new NuGet package release is explicitly requested**
|
||||
- when a release is requested: create PR from `development` to `main`, merge, wait for TC `HrynCo / HrynCo.EF / publish` to finish successfully
|
||||
- close the Gitea issue
|
||||
- create PR from `development` to `main`
|
||||
- merge that PR
|
||||
- wait for TC `HrynCo / HrynCo.EF / publish` to finish successfully
|
||||
- set the YouTrack task to `Done`
|
||||
- calculate exact Spent Time from YouTrack timestamps only
|
||||
- set the YouTrack Spent Time field
|
||||
- switch back to `development`
|
||||
- pull latest `development`
|
||||
- ensure local `development` matches remote
|
||||
- ensure local `development` and `main` match their remotes
|
||||
- leave the repository in a clean end state
|
||||
|
||||
### Spent Time
|
||||
|
||||
- Do not track spent time — this repo uses Gitea, not YouTrack.
|
||||
- Do not estimate or infer Spent Time.
|
||||
- Use exact YouTrack creation and Done timestamps only.
|
||||
- If exact timestamps are unavailable, stop and ask the user.
|
||||
|
||||
### Command output
|
||||
|
||||
@@ -108,9 +115,9 @@ After explicit user validation approval:
|
||||
|
||||
- Keep command output summaries concise.
|
||||
- Do not dump raw command output unless needed.
|
||||
- Use direct links to Gitea issues and wiki pages in implementation notes when stable links exist.
|
||||
- Use direct links in YouTrack and implementation notes when stable links exist.
|
||||
- Use emojis intentionally for scanning, not mechanically.
|
||||
- Commit messages must be Conventional Commit style, lowercase subject, short body.
|
||||
- Commit messages must be Conventional Commit style, lowercase subject, short body, and final line `Ref: IT-<number>`.
|
||||
|
||||
## 6. Audio
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<!-- HrynCo shared packages -->
|
||||
<PackageVersion Include="HrynCo.Common" Version="1.0.0" />
|
||||
<!-- Entity Framework Core -->
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.7" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.7" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.7" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.5" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
@@ -10,8 +10,7 @@
|
||||
<Description>Abstract DAL contracts for HrynCo applications: entities, repository and unit-of-work interfaces.</Description>
|
||||
<PackageTags>hrynco dal abstract entity repository unitofwork</PackageTags>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<RepositoryUrl>https://gitea.hrynco.com/hrynco/hrynco-ef.git</RepositoryUrl>
|
||||
<RepositoryUrl>https://gitea.grynco.com.ua/hrynco/hrynco-ef.git</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
|
||||
@@ -40,12 +40,7 @@ public abstract class BaseEfRepository<TDbContext, TEntity, TEntityId> :
|
||||
{
|
||||
foreach (TEntity entity in entities)
|
||||
{
|
||||
Add(entity, save: false);
|
||||
}
|
||||
|
||||
if (save)
|
||||
{
|
||||
DbContext.SaveChanges();
|
||||
Add(entity, save);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,11 +84,7 @@ public abstract class BaseEfRepository<TDbContext, TEntity, TEntityId> :
|
||||
|
||||
public async Task DeleteAsync(TEntityId id)
|
||||
{
|
||||
TEntity? entity = await GetByIdAsync(id);
|
||||
if (entity != null)
|
||||
{
|
||||
DoRemove(entity);
|
||||
}
|
||||
Delete(id);
|
||||
await DbContext.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
@@ -10,7 +10,7 @@
|
||||
<Description>Entity Framework Core base implementations for HrynCo applications: generic repository and unit-of-work.</Description>
|
||||
<PackageTags>hrynco dal ef entityframework repository unitofwork</PackageTags>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<RepositoryUrl>https://gitea.hrynco.com/hrynco/hrynco-ef.git</RepositoryUrl>
|
||||
<RepositoryUrl>https://gitea.grynco.com.ua/hrynco/hrynco-ef.git</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -28,4 +28,3 @@
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
|
||||
@@ -202,3 +202,6 @@ services.AddScoped<IRepository<Product>, ProductRepository>();
|
||||
services.AddScoped<IUnitOfWork, EfUnitOfWork<YourDbContext>>();
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [IT-642](https://yt.grynco.com.ua/issue/IT-642) — Extract `PagedResult` builder as reusable `IQueryable<T>` extension
|
||||
|
||||
Reference in New Issue
Block a user