tools: --version on every Emb tool, from src/driver/version.h

Open
#192 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
c
Domain
tooling

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

enhancement good first issue

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 Makefile rule for each tool. Check that the tool's build can see src/driver/version.h, and add it to the rule's prerequisites so a version bump rebuilds the tool.

Steps.

  1. Give each tool --version, printing NAME (EmbCC 0.0.1-beta) from EMBCC_VERSION, and exiting 0.
  2. Add one test, for example tests/golden/tool-versions.sh. It runs every tool with --version and checks that each prints EMBCC_VERSION, read from version.h so the test does not restate it.
  3. 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from EmbLinkOs/EmbCC

All issues in EmbLinkOs/EmbCC

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.