tools: --version on every Emb tool, from src/driver/version.h
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Read src/driver/version.h first and follow its comment requiring one shared version string. Then inspect the listed tool option loops and each tool’s Makefile rule; the issue allows implementing a few tools per pull request. Done means the covered tools print their name and EMBCC_VERSION with exit code 0, and a test reads the version from the header and checks every tool.
Written by the indexing model from the issue text.
Description
Context. embcc --version prints EmbCC 0.0.1-beta (...). None of the other tools has --version:
$ ./embld --version
embld: unknown option '--version'
$ ./embsim --version
embsim: embsim: unknown option '--version'
The same holds for embsvd, embmap, embpack, embrt, embread and embflash. embtrace and embar print their usage instead, and embdbg prints an old banner (EmbDBG v0 — EmbLinkOS debug-info reader). A bug report should be able to say which version of each tool was used.
Where.
src/driver/version.h:EMBCC_VERSION, the one version string. Read its comment: the string must stay defined in one place only.- Each tool's option loop:
tools/embld/embld.c,tools/embsim/main.c,tools/embsvd/embsvd.c,tools/embmap/embmap.c,tools/embpack/embpack.c,tools/embrt/embrt.c,tools/embread/embread.c,tools/embflash/embflash.c,tools/embtrace/,tools/embar/,tools/embdbg/. - The
Makefilerule for each tool. Check that the tool's build can seesrc/driver/version.h, and add it to the rule's prerequisites so a version bump rebuilds the tool.
Steps.
- Give each tool
--version, printingNAME (EmbCC 0.0.1-beta)fromEMBCC_VERSION, and exiting 0. - Add one test, for example
tests/golden/tool-versions.sh. It runs every tool with--versionand checks that each printsEMBCC_VERSION, read fromversion.hso the test does not restate it. - It is fine to do a few tools per pull request; say which ones in the PR.
Done when every tool in the README's tools table answers --version with the same version as embcc, the test checks them all, and make check passes.
Before you start: the contributor's guide has the rules. A new test counts only after it has failed against the code before your change, and a commit subject reads area: summary. Questions are welcome in the comments or in Discussions.
- Dominant language
- C
- Stars
- 1
- Forks
- 2
- Avg merge
- 20h 55m
- Merged PRs (30d)
- 73
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from EmbLinkOs/EmbCC
-
avr: errno does not link: __errno_location is not in the C libraryPossibly taken @Firat17aze claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 50/100
Maintainers usually reply within 1 day
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
SPIDevice selects an active-high device as soon as it is createdPossibly taken @mikeysklar claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
adafruit/circuitpython#11869 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
gnif/LookingGlass#1352 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100