Skip to content

Commit 5f645fd

Browse files
committed
Add dev support files and version bump
1 parent 6a65866 commit 5f645fd

12 files changed

Lines changed: 547 additions & 1 deletion

.github/CODEOWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Code owners for libe3.
2+
# Each line is a file pattern followed by one or more owners.
3+
# Owners are auto-requested for review on PRs that touch matching files.
4+
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-security/customizing-your-repository/about-code-owners
5+
6+
# Default owner for everything in the repo.
7+
* @Thecave3
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
name: Bug report
2+
description: Report a defect in libe3. Use this when something does not behave as documented.
3+
title: "[Bug]: "
4+
labels: ["bug", "needs-triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to report a bug. Please fill in every required field — bug reports without reproduction info or environment details cannot be triaged and will be closed.
10+
11+
Before submitting, please confirm you have searched the existing issues on the public mirror (`wineslab/dApp-libe3`) and, if you have access, on the internal repository for duplicates.
12+
13+
- type: checkboxes
14+
id: prerequisites
15+
attributes:
16+
label: Prerequisites
17+
options:
18+
- label: I have searched existing issues and confirmed this is not a duplicate.
19+
required: true
20+
- label: I have verified the bug against the latest commit on `main`.
21+
required: true
22+
- label: I have read `CONTRIBUTING.md`.
23+
required: true
24+
25+
- type: textarea
26+
id: description
27+
attributes:
28+
label: Description
29+
description: A clear and concise description of the bug.
30+
validations:
31+
required: true
32+
33+
- type: textarea
34+
id: reproduction
35+
attributes:
36+
label: Steps to reproduce
37+
description: Numbered list of exact steps. Include the full command lines you ran (`./build_libe3 …`, `ctest …`, etc.).
38+
value: |
39+
1. ...
40+
2. ...
41+
3. ...
42+
validations:
43+
required: true
44+
45+
- type: textarea
46+
id: expected
47+
attributes:
48+
label: Expected behavior
49+
validations:
50+
required: true
51+
52+
- type: textarea
53+
id: actual
54+
attributes:
55+
label: Actual behavior
56+
description: Include error messages, sanitizer output, and stack traces exactly as they appeared.
57+
validations:
58+
required: true
59+
60+
- type: dropdown
61+
id: build_type
62+
attributes:
63+
label: Build type
64+
options:
65+
- "Release (-r)"
66+
- "Debug (-g)"
67+
- "RelWithDebInfo (--relwithdebinfo)"
68+
- "MinSizeRel (--minsizerel)"
69+
validations:
70+
required: true
71+
72+
- type: input
73+
id: build_command
74+
attributes:
75+
label: Exact build command
76+
description: The full `./build_libe3 …` invocation (or `cmake …` / `make …` if you went raw).
77+
placeholder: "./build_libe3 -c -d build -j $(nproc) -r -t"
78+
validations:
79+
required: true
80+
81+
- type: checkboxes
82+
id: features
83+
attributes:
84+
label: CMake feature flags (mark non-defaults)
85+
description: Defaults are LIBE3_ENABLE_ZMQ=ON, LIBE3_ENABLE_ASN1=ON, LIBE3_ENABLE_JSON=OFF, LIBE3_BUILD_TESTS=ON, LIBE3_BUILD_EXAMPLES=ON.
86+
options:
87+
- label: LIBE3_ENABLE_ZMQ disabled
88+
- label: LIBE3_ENABLE_ASN1 disabled
89+
- label: LIBE3_ENABLE_JSON enabled (mutually exclusive with ASN1)
90+
- label: LIBE3_BUILD_TESTS disabled
91+
- label: LIBE3_BUILD_EXAMPLES disabled
92+
- label: LIBE3_ENABLE_ASAN enabled
93+
- label: LIBE3_ENABLE_TSAN enabled
94+
95+
- type: dropdown
96+
id: consumer
97+
attributes:
98+
label: How is libe3 being used?
99+
options:
100+
- "Standalone — examples/simple_agent or similar"
101+
- "Linked from dApp-openairinterface5g (gNB)"
102+
- "Used by dapps tests"
103+
- "Other downstream consumer"
104+
validations:
105+
required: true
106+
107+
- type: input
108+
id: version
109+
attributes:
110+
label: libe3 version
111+
description: Contents of the `VERSION` file at the commit you tested, or git commit SHA.
112+
placeholder: "0.0.1 (commit abcdef)"
113+
validations:
114+
required: true
115+
116+
- type: input
117+
id: os
118+
attributes:
119+
label: Operating system + architecture
120+
placeholder: "Ubuntu 22.04 x86_64 / Ubuntu 24.04 arm64 / Fedora 40 x86_64"
121+
validations:
122+
required: true
123+
124+
- type: input
125+
id: compiler
126+
attributes:
127+
label: Compiler and version
128+
description: Output of `gcc --version` or `clang --version`.
129+
placeholder: "gcc 13.2.0 / clang 17.0.6"
130+
validations:
131+
required: true
132+
133+
- type: textarea
134+
id: ctest
135+
attributes:
136+
label: Test output (if relevant)
137+
description: Output of `cd build && ctest --output-on-failure` for the failing test(s).
138+
render: shell
139+
validations:
140+
required: false
141+
142+
- type: textarea
143+
id: logs
144+
attributes:
145+
label: Logs / sanitizer output
146+
description: Full stderr, ASan/TSan/UBSan reports, GDB backtrace if applicable. Use a code fence.
147+
render: shell
148+
validations:
149+
required: true
150+
151+
- type: textarea
152+
id: notes
153+
attributes:
154+
label: Additional context
155+
description: Hypotheses, recent related changes, related issues.
156+
validations:
157+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Request access to the internal development repository
4+
url: https://github.com/wineslab/dApp-libe3/issues/new?labels=access-request&template=question.yml
5+
about: External contributors must work in the private internal repository. Open an "access request" issue here, or email a.lacava@northeastern.edu as a fallback.
6+
- name: Report a security vulnerability
7+
url: https://github.com/wineslab/dApp-libe3/security/policy
8+
about: Do NOT open a public issue for vulnerabilities. See SECURITY.md for the private disclosure channel.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Documentation issue
2+
description: Report missing, wrong, or unclear documentation (README, Doxygen comments, examples).
3+
title: "[Docs]: "
4+
labels: ["documentation"]
5+
body:
6+
- type: input
7+
id: location
8+
attributes:
9+
label: Documentation location
10+
description: File path, README section, or Doxygen URL.
11+
placeholder: "README.md § Quick Start, or include/libe3/E3Agent.hpp Doxygen comment, or https://wineslab.github.io/dApp-libe3/..."
12+
validations:
13+
required: true
14+
15+
- type: textarea
16+
id: problem
17+
attributes:
18+
label: What is wrong or missing?
19+
validations:
20+
required: true
21+
22+
- type: textarea
23+
id: suggestion
24+
attributes:
25+
label: Suggested correction
26+
validations:
27+
required: false
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Feature request
2+
description: Propose a new capability or behavior change for libe3.
3+
title: "[Feature]: "
4+
labels: ["enhancement", "needs-triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Before opening, please discuss substantial changes with the maintainers (issue, email, or any other channel) — see `CONTRIBUTING.md`.
10+
11+
libe3 is one of three paired repositories (with `dapps` and `dApp-openairinterface5g`). **We do not accept patches that break or reduce compatibility with the twin repositories.** If your feature touches the public API, ABI, or the E3 wire protocol, please describe the corresponding changes needed in the twin repos.
12+
13+
- type: textarea
14+
id: problem
15+
attributes:
16+
label: Problem / use case
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: proposal
22+
attributes:
23+
label: Proposed solution
24+
description: Sketch the API, behavior, configuration option, or new module. Code snippets / header sketches welcome.
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: alternatives
30+
attributes:
31+
label: Alternatives considered
32+
validations:
33+
required: false
34+
35+
- type: textarea
36+
id: twin_repo
37+
attributes:
38+
label: Twin-repo impact
39+
description: Does this require coordinated changes in `dapps` and/or `dApp-openairinterface5g`? If yes, describe them. If no, write "None".
40+
validations:
41+
required: true
42+
43+
- type: dropdown
44+
id: abi
45+
attributes:
46+
label: ABI / API impact
47+
options:
48+
- "No change to public headers"
49+
- "Additive (new public symbols, no removals)"
50+
- "Breaking (removes or changes existing public symbols)"
51+
validations:
52+
required: true
53+
54+
- type: dropdown
55+
id: willing
56+
attributes:
57+
label: Are you willing to implement this?
58+
options:
59+
- "Yes, I'll open a PR (in the internal repo)"
60+
- "Yes, with maintainer guidance"
61+
- "No — proposal only"
62+
validations:
63+
required: true
64+
65+
- type: textarea
66+
id: context
67+
attributes:
68+
label: Additional context
69+
validations:
70+
required: false

.github/ISSUE_TEMPLATE/new_sm.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: New Service Model (SM) request
2+
description: Propose a new E3 Service Model. Service Models always require coordinated changes in both libe3 and dapps — please describe both sides.
3+
title: "[New SM]: "
4+
labels: ["enhancement", "service-model", "needs-triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
A Service Model defines messages that flow over the E3 link between the gNB-side agent (this repo) and the dApp (`dapps`). Both sides must land together.
10+
11+
Reference points: `examples/sm_simple/` for the agent-side scaffolding in this repo, and `tools/generate_sm.sh --interactive` in the dapps repo for the dApp-side scaffolding.
12+
13+
- type: input
14+
id: name
15+
attributes:
16+
label: Proposed SM name
17+
placeholder: "spectrum_sm, my_custom_sm, ..."
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: use_case
23+
attributes:
24+
label: Use case
25+
validations:
26+
required: true
27+
28+
- type: dropdown
29+
id: direction
30+
attributes:
31+
label: Message direction
32+
options:
33+
- "Indication only (agent → dApp)"
34+
- "Control only (dApp → agent)"
35+
- "Both indication and control"
36+
validations:
37+
required: true
38+
39+
- type: dropdown
40+
id: encoding
41+
attributes:
42+
label: Encoding
43+
options:
44+
- "ASN.1 (preferred for production; LIBE3_ENABLE_ASN1)"
45+
- "JSON (faster prototyping; LIBE3_ENABLE_JSON)"
46+
- "Both"
47+
validations:
48+
required: true
49+
50+
- type: textarea
51+
id: schema
52+
attributes:
53+
label: Proposed message schema
54+
description: Paste the ASN.1 module(s) or JSON schema. Even a draft is fine.
55+
render: text
56+
validations:
57+
required: true
58+
59+
- type: textarea
60+
id: libe3_side
61+
attributes:
62+
label: libe3 side — what changes
63+
description: New ServiceModel implementation, registration with `E3Agent`, where it lives under the source tree. Reference existing patterns.
64+
validations:
65+
required: true
66+
67+
- type: textarea
68+
id: dapp_side
69+
attributes:
70+
label: dapps side — what changes
71+
description: New encoder/decoder under `src/e3interface/`, new dApp subclass. Open the paired issue/PR in the dapps repo and link it here.
72+
validations:
73+
required: true
74+
75+
- type: input
76+
id: paired_issue
77+
attributes:
78+
label: Paired dapps issue / PR (if any)
79+
placeholder: "wineslab/dApp-library#123"
80+
validations:
81+
required: false
82+
83+
- type: textarea
84+
id: oai_side
85+
attributes:
86+
label: OAI integration (if applicable)
87+
description: Does the SM require scheduler hooks or PHY-side data collection in `dApp-openairinterface5g`? Describe briefly. Write "None" if not.
88+
validations:
89+
required: true
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Question / Support
2+
description: Ask a usage question or request guidance. For confirmed bugs use the bug report template instead.
3+
title: "[Question]: "
4+
labels: ["question"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Please confirm this is a usage question, not a bug. Check `README.md`, the Doxygen docs at https://wineslab.github.io/dApp-libe3/, and `examples/` first.
10+
11+
- type: textarea
12+
id: question
13+
attributes:
14+
label: Your question
15+
validations:
16+
required: true
17+
18+
- type: textarea
19+
id: tried
20+
attributes:
21+
label: What have you tried?
22+
description: Commands run, docs consulted, links followed.
23+
validations:
24+
required: true
25+
26+
- type: input
27+
id: context
28+
attributes:
29+
label: Relevant context
30+
description: Build flags, encoding (ASN.1/JSON), OS, downstream consumer — whatever applies.
31+
validations:
32+
required: false

0 commit comments

Comments
 (0)