:bulb: Here's a contest for a new name for github-...
# github-workflows-kt
p
💡 Here's a contest for a new name for github-actions-kotlin-dsl library! Since we're getting closer to a stable v1.0.0 release, it's time to address the hints about the current name being too mouthful and hard to remember. In this thread, there are some ideas - please vote for the below ones by adding a 👍 or propose your own. Thanks!
github-aktions
github-actions.kt
github-actions.kts
kothub
c
github-actions-kt (similar to actions-rs and others)
j
github-actions-kts (not sure if GitHub allows dots in repo names)
o
github-workflow.kts? action/actions word can be misleading, as it could point, that repository contains some action, and not another syntax for configuration of github actions
p
@Oleg Yukhnevich I totally get you, I have the same thoughts. It's a bit unfortunate name clash since the official name of this CI/CD system is indeed GitHub Actions: https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions
o
even, almost all external (not created by github) repositories with only action in them called like
something-action
🙂 But, really, what library allow to do, is not to write
actions
, but write
workflows
in kotlin, so for me, it looks much more reasonable Even folder is
.github/workflows
c
perhaps
github-action-workflows-kts
ironically, more descriptive but approx the same mouthful as current name…
j
so actually it's GitHub who messed up his naming here right? what people care about are GitHub Workflows, not the individual actions the workflows are made of I think I'm 66%/33% in favor of
gitub-workflows.kts
over
github-action.kts
c
yea, GitHub messed up naming “GitHub Actions” that are really “GitHub Workflows”
j
You don't have to stress about having the perfect name either. What's important is that the name can be remembered and understood well enough. I think
gitub-workflows.kts
check the boxes here. And then you use the repository description and the README title to clear up any remaining confusion
gitub-workflows.kts
helps programmers to write Workflows for GitHub Actions using a typesafe language (Kotlin) instead of YAML
actually @Piotr Krzemiński you need another brainstorming on that
About
description, mine is just a draft
c
…you had me at “not YAML” and “typesafe” 😉
j
we made multiple iterations on what the punchline for refreshVersions should be
j
github workflows hasn’t a good SEO
I wouldn’t find for workflows if I am looking for github actions + any programming language
j
that's true, but
github-action.kts
is the same or worse right? ifor me it's the norm that I can't find a software in Google, only in GitHub think about unix tools like
cat
man
or
go
: worse SEO ever🙂
j
I am not saying that the original github name (github actions) is a good name, but it is its name. Trying to change it in a library for it is not a good idea IMO
j
yep that's the other side of the argument, that's why I'm not sure
to be frank I don't think you can reasonably win the SEO game either way GitHub search is probably what you care about for that and there are repos with lots of stars around there https://github.com/search?o=desc&q=github+actions&s=stars&type=Repositories
p
Yet another approach to naming things is to go with something abstract and not really semantically related to what one creates, like Apple
It can help solve the SEO problem, if the name is unique enough (or using it with GitHub is pretty unique).
j
yes, you could choose the first or last name of someone famous, like Picaso for Square maybe a famous greek builder or something another trick is to use a noun but translated in a weird language like esperanto (lots of examples but not on my tongue right nowo) or japanese (Square: moshi moshi?)
ok, I have found one!
konstrui
means
build
in esperanto, and since it starts with k, everyone knows it's in Kotlin 🙂
p
konstrui brings UI to my mind 😅 not sure if that's good, but I like the overall direction
I propose silikone. Inspired by: • silicone - my surname is Krzemiński, and "krzem" in Polish is "silicone" in English • c -> k is a standard trick in the Kotlin world • I've recently read about https://graphite.dev/ which also has a name that relates to some chemical element • It's pretty short and easy to remember, hopefully. Also fits as a name for a CLI, short and unique enough (can be also shortened to
sk
)
c
…and silicone is often used as a lubricant, therefore it’s pretty slick. 👍
j
sounds good, and also Piotr I like to make silly suggestions but at the end of the day,it's your project and you are the one who decides 😛
p
By no means I intend to say "that's the name and let's go home", I'm more than open for suggestions :) let's sleep with this "silikone" thing and see how it sounds tomorrow
Also, let me know if "silikone" is something offending in another language or something. Do you know this brand "Osram"? In Polish it means "I'll sh*t all over (...)". Nevertheless, Poles appreciate the quality of Osram bulbs :)
j
well it's a good bilngual french-english joke silly 🇬🇧 and conne 🇫🇷 which sounds like "kone" are almost synonyms
l
I don't really like proper names. I rather have the library describe what it does in its name. Detekt and Kotest come a bit to mind in this, and Silikone doesn't ressonate anything related to a workflow dsl
j
if you want to look at some data, here is a list of some of the most popular libraries you can see the descriptive names, the proper names, the jokes, etc... I don't think there is only one thing that works https://github.com/LouisCAD/kotlin-libraries-playground/blob/ff3ae6af7530d3b873b79486cf6e947f1ee53aa1/kotlin-jvm/build.gradle.kts#L25-L89
l
https://github.com/topics/kotlin?o=desc&s=stars I'll up that ante with a bigger list, let's see
b
Gh does, maven doesn't. I personally like when repo and artefact names match. So my vote goes for dropping all dots.
j
## Very descriptive Yes: okhttp leakcanary mmkv kotlinx-xxx http4k graphql-kotlin mockk assertk kotlin-faker sqldelight kotlin-statistics refreshVersions dokka No: kotlin tachiyomi anko ktor quaar konvenant wasabi kara hikaku exposed xodus openrndr krangl kotlingrad koma ## Easy to remember and pronounce Yes: kotlin okhttp leakcanary http4k graphql-kotlin mockk refreshVersions anko ktor konvenant wasabi kara hikaku exposed sqldelight assertk kotlin-faker kotlin-statistics kotlingrad Not really: tachiyomi mmkv openrndr krangl dokka ## SEO most of them seems OK to OK-ish?
My 2 cents here is that if you can check all the boxes, why not? But I had to choose between criteria, I would prioritiz the name being easy to remember and to pronounce. Some descriptive names works really well, some non descriptive names also work really well. And for SEO,
go
was apparently good enough for Google’s own programming langauge.
l
Let's create a new round of voting, removing options with
.
(as it's disallowed from MavenCentral) and cleaning the discussion up? @Piotr Krzemiński
p
Yes, I'll collect all ideas and hints into a nice table with pros/cons/features and will invite you to vote again
actually, I’m convinced by
github-workflows-kt
• explicitly says what the library does - after giving it more thought, I actually like it. Imagine browsing a list of libraries your project depends on. This library won’t be the most popular one, so it’s good to explain its purpose in the name •
workflows
not
actions
to not introduce confusion that this library will let you implement custom actions. I know GitHub messed up the naming, but we have a chance to sort of fix it for the purpose of this lib •
kt
not
kts
because we don’t have to limit ourselves to Kotlin Script. Saying “Kotlin” is enough • short, easy to remember, in line with names of other Kotlin-related libs thanks to
-kt
suffix • Maven-friendly • should do the job regarding SEO let me know if you like it by either giving a 👍 , or 👎 with some rationale
j
Sounds great to me
What about the DNS?
b
How do you mean?
j
Renaming the project is the good moment to pause and reflect whether owning your DNS off of using github pages would be interesting More here https://github.com/krzema12/github-actions-kotlin-dsl/issues/465
b
Oh you mean purchasing a domain name to "own" it on maven central group and host the website
Yeah, I'm not too bothered by that, but you can get a domain for like 5-10 bucks a year on namecheap.com
p
I’m not sure if I want to push it that far. I know it would look more professional and such, but I doubt the project will get that big to justify extra costs. If the domain was for free, then maybe 🤷 In practice, the difference is in group ID and perhaps Kotlin package right? my name wouldn’t appear there, which potentially also opens possibilities of transferring the project in case I get bored by it 😉
j
To be honest I don't know either, that's why I put maybe in the title of the issue
My experience is that owning the DNS costs like $15 a year. And the benefits to have a good open source project to show off in your career is way way more than that
b
I personally just hook up all my projects under a subdomain of my single personal domain, so no extra cost per-project. However I recognize how this can become quite troublesome if I ever need to transfer the ownership
l
I personally just hook up all my projects under a subdomain of my single personal domain, so no extra cost per-project. However I recognize how this can become quite troublesome if I ever need to transfer the ownership
Is it that troublesome? It's just like any other package upgrade
p
Maven coords change, so if the users don't change it in their config, they e. g. may get no updates about newer versions. I was thinking about tackling this problem for the purpose of changing artifact ID to the new name - ideas: • maybe Maven allows some kind of aliasing • we could publish the last dummy version under the old coords that would produce a failed build, with a message that which would encourage the users to migrate to the new coords
c
i believe you can continue to publish a marker artifact to the old coords - all that is needed there is a dependency on the new artifact. Similar to how Gradle plugins work - the plugin ID is a marker artifact with a dependency on the actual JAR.