dlang-community / setup-dlang

Github action for dlang compiler setup
MIT License
46 stars 14 forks source link

Extend regex to be more user friendly when matching compilers #40

Closed Geod24 closed 6 months ago

Geod24 commented 3 years ago

Currently the regex we use is rather simple:

https://github.com/dlang-community/setup-dlang/blob/cf2096d4ff98ddeff7e3dbe601fc03f388543c7e/src/compiler.ts#L19

We only allow ${compiler}-XXX. I propose the following improvements:

Thoughts @PetarKirov @mihails-strasuns @WebFreak001 ?

Geod24 commented 3 years ago

@mihails-strasuns : The second point is inspired by https://github.com/sociomantic-tsunami/ocean/blob/81050e06f3197e637ab6090b027c158fa28691a2/.travis.yml#L36

WebFreak001 commented 3 years ago

Match ldc and dmd as alias to {dmd,ldc}-latest: This will be more user friendly.

👍

Match a version without patch version: E.g. 2.094 as an alias for 2.094.2.

is this always going to be the latest patch? I think this is a good addition.

Allow to match an offset from latest: Some projects might want to support the last X releases. Currently they need to edit their workflow whenever a new version is released.

this is a good use-case, though for a lot of compilers github doesn't really allow anything convenient from the action side afaik. Currently you will probably need to list versions like dmd-latest, dmd-latest-1, dmd-latest-2, dmd-latest-3, dmd-latest-4, ...

Probably a good idea to think about a small name to quickly use here, something like dmd, dmd^1, dmd^2, dmd^3, ... maybe

PetarKirov commented 3 years ago

Allow to match an offset from latest

I agree it's a valuable feature. I have a WIP implementation of this as I wanted to have this feature in order to migrate dub from TravisCI to setup-dlang... that was a while ago. IIRC I got stuck in trying to do some meta-programming in Typescript while rewriting some parts of the codebase 😄 I will take a look this weekend to see if I can bring it to the finish line.

Geod24 commented 3 years ago

Nice! And as suggested by @WebFreak001 , I think dmd^X is the best syntax for this.