Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Laya the open source version of Jev(convaiinnovations.com ↗)
    131comments
  2. A graphical desktop for the ZX Spectrum(github.com/mindbox77 ↗)
    44comments
  3. Tin: full-text search for Postgres(planetscale.com ↗)
    34comments
  4. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    443comments
  5. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    179comments
  6. “The Secret Life of Circuits” is here(coredump.cx ↗)
    51comments
  7. Black Holes or Black Hole Stars? Astronomers Spar over 'Little Red Dots'(quantamagazine.org ↗)
    11comments
  8. Asking Authors About Their Own Papers(medium.com/tmlrorg ↗)
    31comments
  9. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    546comments
  10. Agreement between the USA and Denmark (1951,2004) [pdf](state.gov ↗)
    8comments
  11. I built the fastest PHP webserver in the world(qbixserver.com ↗)
    24comments
  12. San Francisco Onion Futures Company(onionfutures.com ↗)
    112comments
  13. New evidence for hidden chambers beyond Tutankhamun's tomb(nature.com ↗)
    3comments
  14. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    131comments
  15. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    187comments
  16. What Zig felt like, coming from Rust(besok.github.io ↗)
    103comments
  17. Learning Another Language May Be One of the Best Ways to Keep Your Brain Healthy(theconversation.com ↗)
    38comments
  18. Cloudflare Quick Tunnels(cloudflare.com ↗)
    301comments
  19. How to Write with an LLM(sockpuppet.org ↗)
    360comments
  20. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    24comments
  21. Communication by means of modulated Johnson noise(pnas.org ↗)
    18comments
  22. Saving another 100TB of RAM(cloudflare.com ↗)
    89comments
  23. SDCC – Small Device C Compiler(sourceforge.net ↗)
    23comments
  24. Science Is Open Software(jepedersen.dk ↗)
    50comments
  25. Ray Ozzie and the Optimism of Being Early(reproof.app ↗)
    10comments
  26. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    44comments
  27. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    7comments
  28. From Stonemasons to Carpenters(thelastsoftwareengineer.substack.com ↗)
    4comments
  29. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    122comments
  30. OpenJev(openjev.com ↗)
    278comments

Golang on GitHub

220 pointsby 11y agogithub.com
106 comments
11y agoHN ↗

It's unfortunate that it isn't possible to disable pull requests. There is already noise appearing there, which will always be a wart so long as pull requests can't be disabled.

11y agoHN ↗

Noise? That's how contributions are called now?

11y agoHN ↗

No, it's just that the Go team have decided to continue with their current contribution process rather than using pull requests. I don't know whether this is a permanent decision or not.

"The Go team will not be accepting pull-requests here. Contributions must still go through the normal code-review process and gerrit. The updated contribution steps are not yet available though."

https://github.com/golang/go/pull/9219

11y agoHN ↗

This is something very similar to that is being planned for FreeBSD repositories on GitHub: automated process turning pull requests into FreeBSD's Bugzilla bug reports and a comment closing the pull request, informing user about the Bugzilla bug link and how to proceed.

11y agoHN ↗

Actually that's even better than disabling pull requests entirely. I guess the closing comment will also contain a link to contribution guidelines and such.

Edit: @rurounijones points out that if there's a CONTRIBUTING.md in the repo then Github will show it when someone creates a PR. That's a great feature!

11y agoHN ↗

Go already has an established contributing process, and people who make PRs without bothering to understand that process are likely just making noise.

11y agoHN ↗

Interesting that the git hipsters are downvoting factually correct information. "Unruly hackers" (pg) seem to be perfect fodder for groupthink and monopolies.

11y agoHN ↗

GitHub provides the best web-based git repository browser, as well as various other useful features. The only other reasonable alternative for a large open-source project, aside from self-hosting, is bitbucket.

11y agoHN ↗

I would like to disagree with the "the best". Mostly because it's obviously your opinion and not something you can say definitely.

11y agoHN ↗

Well the already mentioned bitbucket, stash, cgit, gitweb, ... My point is that if you like something it isn't automatically "the best".

11y agoHN ↗

Sometimes you have to learn to trust your opinion too -- and to learn to access others opinions when there are no definite answers.

11y agoHN ↗

ironically there is an ongoing discussion on python-devel to migrate from hg to git+github

IMHO it's an error, but I am not a core python developer

11y agoHN ↗

GitHub provides the best web-based git repository browser

I like Bitbucket's side-by-side diff view so much, that I think I prefer Bitbucker for browsing.

But this is only because Bitbucket has the side-by-side diff view, anf GitHub does not.

11y agoHN ↗

Oh, right, thanks. They just call it "split" and not side-by-side.

11y agoHN ↗

Lot of replies here disagreeing that GitHub is "the best", and offering alternatives.

Allow me to suggest that GitHub is at minimum the most-visited web-based git repo, which means that if you want a lot of people to view and use your code, it's a good place to mirror.

11y agoHN ↗

Is their contributing process described in README or in some other file within the repo?

11y agoHN ↗

There is, but since we're only partway through migrating to git/github, the README still shows the old instructions. The new contribution instructions will appear here in the next few days: http://golang.org/doc/contribute.html

Not that it really matters, right now, as we're in a pre-release freeze.

11y agoHN ↗

Make sure there is a CONTRIBUTING.md file in the repo and Github will automatically highlight it to be read when someone opens a PR

11y agoHN ↗

Github PRs are noise when the contribution workflow does not use PRs.

Go's contribution workflow does not use PRs.

11y agoHN ↗

I've seen projects solve this problem by keeping a pull request open that indicates where contributions should go instead.

11y agoHN ↗

That still doesn't prevent people blindly creating a new pull request though.

11y agoHN ↗

So, that c/go code I see in the repository isn't actual code or...?

11y agoHN ↗

Its actually pretty cool that all the google code issues got turned GitHub issues, in the same exact order as the google code issues such that the issues numbers are still consistent on Github.

11y agoHN ↗

I went through a similar migration last month for PyInstaller, and we couldn't find a way to set the original date for issues/comments; the best solution was to add the date/time as part of the comment; see just one example here: https://github.com/pyinstaller/pyinstaller/issues/830

The script you linked does the same (we used a different now). We even contacted GitHub and they said we were out of luck, very sorry.

Now, I see golang has perfectly migrated all the timestamps. I wonder how they did that. If they used some private APIs, I would be very annoyed with GitHub support.

11y agoHN ↗

Unfortunately a significant problem was just found in the process for migrating the issues from code.google.com to GitHub. We're going to re-do the migration, but need to lock down the repo so we don't blow away anything that someone might enter.

It should be back soon-ish.

11y agoHN ↗

If you go to that link you might get 404. You can go to https://github.com/golang/ to explore. Once you go there, you might see go as a project too.

Go overuse is purely intended.

11y agoHN ↗

Just added it now, perhaps it will update. I'll check back on it later, thanks.

11y agoHN ↗

I'm not sure about that either, I have 32 commits:

➜ go hg log --user "Shawn Smith" | grep user | wc -l

32

Edit: I'm there now. Not sure what fixed it, starring the repo or adding my email address to GitHub.

11y agoHN ↗

Btw, you can avoid the grep in hg using a simple template:

    hg log --user "Shawn Smith" --template "{rev}:{author}\n" | wc -l

Of course, hg output is also meant to be parseable, so there's nothing wrong with grepping. I just wanted to talk about the awesomeness of hg templates. :-)

http://mercurial.selenic.com/wiki/GenericTemplatingPlan

Edit: Oh, oh, and another way to count without even using wc -l, using the churn extension and a revset!

   hg --config extensions.churn= churn -r "user('Shawn Smith')" -c

Naturally, if you enable the churn extension in your ~/.hgrc, this is just

    hg churn -r "user('Shawn Smith')" -c

Mercurial is a very cool DVCS, and it makes me very happy, and its features need to be more frequently talked about. :-)

11y agoHN ↗

Interesting, I'll star the project and see what happens. I see other people's contributions showing up that are over 1 year old so I'm not sure if that is why.

11y agoHN ↗

Did someone else notice the c joke (?) in the first 3-4 commits?

11y agoHN ↗

So these are actually commits from the C language? Or are they spoofed?

Obviously there wasn't Git back then, but did they use some sort of version control when developing C?

11y agoHN ↗

Obviously there wasn't Git back then, but did they use some sort of version control when developing C?

I'm gonna guess printouts.

11y agoHN ↗

You could file a bug against GitHub.

Maybe they could also fix their recognition of email addresses to permit `<research!bwk>` too.

11y agoHN ↗

Hah, that's funny. Give credit where credit is due.

11y agoHN ↗

The number is not that high at all. I only see 1,289 open issues. To compare the D issue tracker has 3,677 open issues right now and the D user and developer community is tiny compared to the Go community.

Also note that "issue" does not necessary mean "bug". Such trackers are also used to request features just like in this case. Many of the D and Go "issues" are actually feature requests.

11y agoHN ↗

It's been a very active open source project for over five years. It's roughly 5 issues per week.

11y agoHN ↗

Rust has 2,163 issues at the moment, compared to Go's 1,289.

11y agoHN ↗

Keep in mind that contributing to Go requires that you sign a contributor license agreement, something people might not want to go through (no pun intended) for small changes.

11y agoHN ↗

BUT this allows for easier changing of the licensing.

11y agoHN ↗

That's a "feature"? (from a contributor perspective)

11y agoHN ↗

A fairly large number of projects decide to change their license later in life, but this is mostly if they start off with more "restrictive" (for lack of a better term, i know how Free software advocates feel about this) licenses, like GPLv3 or whatever, or because they discover the license doesn't work well for what they wanted.

For example, Eigen, a very widely used math library, switched licenses because they were mistaken about the implications of LGPL, and as it started getting more widely used, it started affecting usage.

Other projects grow runtime libraries, and discover they don't want licenses that require attribution for those, because then everyone who makes a binary has to ship notices, etc.

There are even simpler cases.

For example, llgo, the Go language frontend for LLVM, is being contributed to the LLVM project. This requires a license change to the same license as LLVM. Because there were no contributor agreements, every contributor had to be tracked down and asked. A bunch are either dead or not around anymore, and now those contributions have to be rewritten or excised. This has slowed them down a few months so far (at least from my view, pcc can surely correct me if it hasn't been that long)

In terms of how often this happens, i've personally helped about 50 medium-high profile open source projects change licenses, and it's not even my "real job". It's fairly common that as a project goes from nothing to having a lot of users, they end up having to change something about their licensing.

It's also a massive pain when there are no CLA's.

11y agoHN ↗

I believe Rust requires a CLA as well. Might be wrong, but I seem to remember getting a mail about that a while back. A rust dev that knows for sure can correct me, if necessary.

11y agoHN ↗

Not quite right. "Those with review privileges or direct push access are required to file a Mozilla "committer agreement". "

(FWIW: From a legal standpoint, this doesn't make any sense. Either all-in or all-out makes sense. There is no legal distinction to be drawn that the above captures, AFAIK)

11y agoHN ↗

So does this mean all original code (IE not third party code) requires a CLA?

Or not?

If so, then Rust requires CLAs. Great, legally sound.

If not, this makes no legal sense. Simply having people with a CLA commit it buys you nothing, legally :)

As I said, all-in and all-out policies make sense. Pass through policies (IE i can commit code by another), you may as well have no CLA. It's just overhead with no legal benefit. The benefit of CLA's is to have legal assertions about ownership and patents, from the people who wrote the code.

So without having the people who actually wrote the code make those assertions, you get nothing legally.

In those cases, or if it isn't your goal (like the DCO folks), you might as well move to the developers certificate of origin model, and get the same benefits, without any of the overhead.

11y agoHN ↗

The Mozilla committer agreement is not a CLA as I understand the term - it does not assign copyright to Mozilla, copyright is retained by the original author. The purpose of the document is to assert that those contributing code have the legal authority to do so. In Rust's case, those with review power are the gatekeepers responsible for ensuring the provenance of the code.

11y agoHN ↗

it does not assign copyright to Mozilla

This is common to many CLAs (sane ones, at least). The Go CLA (really the Google CLA[1]) also does not assign copyright to the Go project, it gives them a license to "reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works"

[1] https://cla.developers.google.com/about/google-individual

11y agoHN ↗

CLA = Contributor License Agreement

No license agreement should be assigning copyright.

IE All CLA's should be licenses, not assignments.

Any project with a copyright assignment doesn't have a CLA, they have a copyright assignment. :)

11y agoHN ↗

Github does display both author and committer, and has for some time. If an author is present, it's the contributor.

11y agoHN ↗

One thing I love in Rust is that it purely makes use of the existing infrastructure that everybody knows - GitHub.

Every Google project uses its own repository, issue tracker, and mailing list. Even many Mozilla projects such as SpiderMonkey require some knowledge to access their infrastructure. However, almost all development in Rust are done only using GitHub. No external dependencies. One exception that is not part of GitHub would be the build bot, though it doesn't matter much.

I know that GitHub centralization is not a good sign, but Rust's all-in-one approach really lowers the barrier to entry significantly.

11y agoHN ↗

I believe the .../graphs/contributors page only shows the top 100 contributors (for Go it looks like the threshold for commits is approximately 6).

11y agoHN ↗

You're right, but that's not the reason here. That's with the default filter; you can adjust the date range, or show based on lines added/removed, and I'm still not showing up even in cases when it shows less than 100 people and/or with less total lines added/removed than my commits.

11y agoHN ↗

I'd like to mention that for me personally the biggest issues with the language so far is its unappealing name.

'Go' sounds like a bad sports drink.

Does anyone think the same?

Is it for the greater good to be inviting for more pragmatic thinkers (instead of people who care about aesthetics)?

11y agoHN ↗

To me "Go" is associated with the game Go/Baduk.

Which happens to be a amazing game not only for abstract thinkers, but for aesthetic beauty.

11y agoHN ↗

If you choose your tools based on the naming you're going to have very few left to work with.

11y agoHN ↗

I don't use Java because I'm more of a tea drinker.

11y agoHN ↗

Thanks guys, the amount of negative votes lets me know I should change my perception of it, because I'm likely the minority. I thought this is an issue if we want to invest in the future of a language, but apparently it isn't.

11y agoHN ↗

Hmm - how did they manage to backdate the issue/issue comment creation? I don't see it in the GitHub API documentation.

11y agoHN ↗

Special process, working with support@github.com. They have an internal tool that will migrate a special format (which we had to prepare). After 14 tries, we got it right. Mostly. We still couldn't do lots of things we wanted, but it was way better than our first version where we did it all via API calls.

11y agoHN ↗

A (much smaller) project I contribute to might want to similarly migrate issues from Google Code to GitHub. It would be nice if backdating were available via a standard API, but I guess it's not terribly important for us. A bigger problem is that we'd like issue numbers to have a 1:1 mapping, but we're already using GitHub for pull requests, and pull requests are issues, so something would have to give... however, if we could specify arbitrary (unused) IDs, we could do something like add 100000 to the old issue numbers. Just thinking out loud.