Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Smithy #6110

Merged
merged 10 commits into from
Nov 14, 2022
Merged

Add Smithy #6110

merged 10 commits into from
Nov 14, 2022

Conversation

jjant
Copy link
Contributor

@jjant jjant commented Oct 11, 2022

Description

Adds support for Smithy.

Checklist:

Popularity

The Smithy repo has over 1.1k stars.
Smithy is used by projects like smithy-rs to generate OSS AWS sdks, including the rust one: aws-sdk-rs.
Together, these projects accumulate over 3k stars.

@jjant jjant requested a review from a team as a code owner October 11, 2022 14:57
@Baccata
Copy link

Baccata commented Oct 25, 2022

@lildude, could you elaborate on the popularity requirements, and provide a way to check how many repositories hold files with the extension ? The "advanced search" query doesn't quite seem to give us that 😞.

@lildude
Copy link
Member

lildude commented Oct 25, 2022

Sure. See the very first sentence at https://github.com/github/linguist/blob/master/CONTRIBUTING.md#adding-a-language

There isn't an easy way to check the number of repos due to issues with search as detailed in the referenced issue, but that issue explains how I'm checking.

@jjant
Copy link
Contributor Author

jjant commented Oct 25, 2022

@lildude I see more than 2000 results, with this query, and "a bunch" of different repos.

In case it helps, I'm on the preview for the new code search feature but I couldn't find a way to count users/repos.

@lildude
Copy link
Member

lildude commented Oct 25, 2022

@lildude I see more than 2000 results, with this query, and "a bunch" of different repos.

Indeed, however the awslabs user is responsible for most of these thus it is having a dispropotionate and unrealistic influence on the popularity. Removing that user with -user:awslabs brings things right down to ~900.

From the issue:

If particular users are showing a high proportion of the results, I'll manually filter out those users using -user:<username> to reduce their impact on my assessment.

@Baccata
Copy link

Baccata commented Oct 25, 2022

@lildude Thank you for the answers :) If you don't mind, I'll try to advocate (in an unavoidably biased way) for the merge of this PR, besides Smithy not fully hitting the criteria.

Let me start by saying that I have a stake in the merging of this PR, in that I'm a principal engineer at Disney Streaming (the folks behind Disney+), in charge of a team that builds an internal ecosystem of tooling and specifications at my company.

We have elected Smithy as one of the pillar for this tooling, because it is arguably the best interface-definition-language (IDL) out there. It is (imho) a better IDL than what the openapi, protobuf and avro ecosystems have to offer. It is also protocol-agnostic, which means it's well suited to describe interfaces for a lot of things. The fact that AWS is behind also gives it a non negligible chance of becoming a standard in the software industry.

  • Internally at DisneyStreaming, we have hundreds of Smithy files (the number is ever growing).
  • Publicly, my team maintains a few open-source, Smithy centric projects, and are planning on releasing more. For example
  • Other companies are also gaining interest and building their own tooling.
  • People are writing blogposts about it
  • People are invited to conferences and podcasts to talk about it

So basically, my first point is that people in very serious compagnies are already using it in business contexts, it's very much not a pet project.

My second point, and that's quite important, is that the mere nature of Interface Definition Languages is that they are bound to have a larger private occurrence/public occurence ratio than other languages, because APIs definitions are often intrinsically tied to businesses. The surface area of these languages are small, and they don't need much examples to cover what they can do (which reduces the amount of occurrences you'll find them in public-repos). Their value is however very high for businesses, which use these simple semantics to describe a lot of things.

So basically, the fact that Smithy is gaining in popularity may not be visible through the usual metrics, because the uses will very often be private. The few files you can find on github.com are only the tip of the iceberg.

A merge of this PR would greatly improve the quality-of-life around Smithy usage in Github Enterprise as well as private repositories. If there was a way (literally any way) to get syntax highlighting in Github without having to argue with a central authority, you can trust we'd have done that already a few years ago.

There you go, I hope this helps push your mouse towards the merge button 😄 I will certainly not take it personally if that's not the case, but I had to at least try.

@kubukoz
Copy link

kubukoz commented Nov 8, 2022

@jjant I would suggest that you avoid merging master into this for the time being (especially if it's a clean merge), that way folks who are following the discussion won't get notified unnecessarily :)

@lildude
Copy link
Member

lildude commented Nov 14, 2022

I've tinkered around with the new search and usage looks much more promising there even without the awslabs user. I believe this might be because the new search may be including older repos. So I think we can go ahead and merge this.

lildude
lildude previously approved these changes Nov 14, 2022
@lildude lildude dismissed their stale review November 14, 2022 15:59

Whooops. Tests need to pass first.

@jjant
Copy link
Contributor Author

jjant commented Nov 14, 2022

Thank you @lildude! I'll try fixing the tests today.

@lildude
Copy link
Member

lildude commented Nov 14, 2022

No worries, I'm onnit now.

Copy link
Member

@lildude lildude left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All green ✅ now.

@lildude lildude merged commit 987bb67 into github-linguist:master Nov 14, 2022
@jjant jjant deleted the add-smithy branch November 14, 2022 16:41
@jjant
Copy link
Contributor Author

jjant commented Nov 14, 2022

@lildude Great, thank you!
Out of curiosity, when can we expect this to go live?

@lildude
Copy link
Member

lildude commented Nov 14, 2022

#6160 (comment)

@kubukoz
Copy link

kubukoz commented Nov 14, 2022

this is great news! Thank you!

@kubukoz
Copy link

kubukoz commented Jan 11, 2023

Hey, I'm not sure as it's not listed in the release notes - is this available in Enterprise 3.7.2? I'm trying to justify an upgrade.

@lildude
Copy link
Member

lildude commented Jan 12, 2023

No. This won't be in GHES until 3.8 due the first quarter of this year.

@kubukoz
Copy link

kubukoz commented Jan 12, 2023

Thanks :)

@github-linguist github-linguist locked as resolved and limited conversation to collaborators Jun 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants