inkle / inkle/ink

RFC Bytecode version in releases/--help

Open
#472 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
4.9k
Forks
540
PR merge metrics
No merged PRs in 30d

Description

Third-party runtimes seem to be sensitive to the version of bytecode emitted, but it is not always obvious what version of Inklecate is needed for that. In a particular downstream situation (https://github.com/y-lohse/inkjs/issues/217) using 0.8.2 results in bytecode that is too new, while 0.8.1 works. In the current state it is easy for an update to break compatibility (to be expected) but the resulting confusion of "which version should I use?" is not good for prospective new users.

I have recommended that downstream mention the most recent known-good version. I also recommend that any other third party implementations do this, although they seem to want to write it off as a "maintenance issue."

Upstream (here), inklecate should probably carry a version stamp. Most software does, so including a line that looks something like:

```
$ mono inklecate.exe -h
the ink compiler (v0.8.2, bytecode 18)
[..]
```

Version scraping can be automated easily, but how to integrate the stamping is something I don't know about (since I don't use the MS IDE.)

`git describe $(git rev-parse HEAD)` will respond with the closest tag, so the usual tagged release works out. Non-release versions end up with names like "sometag~commitsbehind" but usually projects just go with the commit hash `git rev-parse HEAD` for unreleased editions.

I might be able to fiddle a script together to go through recent releases, compile a sample script and check the ink version. The result of that can at least go in to a simple markdown file (doesn't solve the `-h` situation, but does solve discoverability.)

Thoughts?

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue focuses on inklecate's `-h` output and suggests recording release and bytecode versions in a Markdown file. Start by examining how the compiler's help entry point and releases are assembled; done means users can identify the compiler and bytecode versions, including for released builds.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
cli, release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.