# A too prolific Hackage user?

**URL:** <https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555>\
**Category:** Uncategorized\
**Created:** [January 13, 2024, 9:19pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555 "2024-01-13T21:19:39Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ocramz](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ocramz/32/3713_2.png) [@ocramz](https://discourse.haskell.org/u/ocramz)\
**Post date:** [January 13, 2024, 9:19pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/1 "2024-01-13T21:19:39Z")

</div>

[https://hackage.haskell.org/user/OleksandrZhabenko](https://hackage.haskell.org/user/OleksandrZhabenko)

I’ve been observing the activity of this person on Hackage , and I’m a bit concerned by the large amounts of single-purpose packages they produce which amount essentially to one big monorepo.

Can anyone of our Hackage admins give this person a heads up ?

---

<div class="post-metadata">

**Author:** ![f-a](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/f-a/32/2740_2.png) [@f-a](https://discourse.haskell.org/u/f-a)\
**Post date:** [January 13, 2024, 9:45pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/2 "2024-01-13T21:45:16Z")

</div>

Hackage admins might or might not read Discourse.

> **Reporting problems**
> 
> For issues with accounts or permissions please contact the administrators by email at [hackage-admin@haskell.org](mailto:hackage-admin@haskell.org)
> 
> Bugs with the site code or server/hosting issues should be reported in the [issue tracker](https://github.com/haskell/hackage-server/issues).
> 
> Scheduled infrastructure status information is available at [status.haskell.org](http://status.haskell.org) and automated uptime information at [auto-status.haskell.org](http://auto-status.haskell.org/). Serious issues requiring immediate action should be reported to [admin@haskell.org](mailto:admin@haskell.org) or on the #haskell-infrastructure irc channel on libera.chat.

---

<div class="post-metadata">

**Author:** ![Ambrose](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ambrose/32/5672_2.png) [@Ambrose](https://discourse.haskell.org/u/Ambrose)\
**Post date:** [January 14, 2024, 1:09am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/3 "2024-01-14T01:09:01Z")

</div>

Is the main concern that it will cause some sort of performance degradation of the Hackage server?

---

<div class="post-metadata">

**Author:** ![atravers](https://avatars.discourse-cdn.com/v4/letter/a/45deac/32.png) [@atravers](https://discourse.haskell.org/u/atravers)\
**Post date:** [January 14, 2024, 1:52am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/4 "2024-01-14T01:52:36Z")

</div>

It’s more to do with the shrinking Hackage namespace - once uploaded for general use, there’s no way to revoke a package so that its name can be freed. An infamous example of Hackage irrevocability is `acme-everything`.

---

<div class="post-metadata">

**Author:** ![effectfully](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/effectfully/32/3266_2.png) [@effectfully](https://discourse.haskell.org/u/effectfully)\
**Post date:** [January 14, 2024, 2:39am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/5 "2024-01-14T02:39:04Z")

</div>

> [@ocramz](#):
>
> I’ve been observing the activity of this person on Hackage , and I’m a bit concerned by the large amounts of single-purpose packages they produce which amount essentially to one big monorepo.
> 
> Can anyone of our Hackage admins give this person a heads up ?

It doesn’t look malicious at all, plenty of docs and sensible code (I’ve only looked at several packages though), even though it’s mostly oddly specific. I’d rather lean on the side of letting people upload to Hackage whatever they find valuable for themselves than to make everyone anxious of whether their work is “objectively valuable” enough.

> [@atravers](#):
>
> It’s more to do with the shrinking Hackage namespace - once uploaded for general use, there’s no way to revoke a package so that its name can be freed.

Which name would you miss? Almost all of them are extremely specific and probably not a single other person would want their package to have such a name.

---

<div class="post-metadata">

**Author:** ![atravers](https://avatars.discourse-cdn.com/v4/letter/a/45deac/32.png) [@atravers](https://discourse.haskell.org/u/atravers)\
**Post date:** [January 14, 2024, 5:34am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/6 "2024-01-14T05:34:48Z")

</div>

> Which name would you miss?

I’ll let others with more Hackage knowledge/experience answer that question:

- 

> [@](#):
>
> [wiz:](http://discourse.haskell.org/t/an-external-command-system-for-cabal-what-would-you-do-with-it/7114/47)
> 
> Please don’t make polluting Hackage even more simple 🙏

- 

> [@](#):
>
> [bodigrim:](http://discourse.haskell.org/t/need-a-review-of-linear-typed-api/4020/14)
> 
> Anyone else to take a look, before it pollutes Hackage forever?

- 

> [@](#):
>
> [bodigrim:](http://discourse.haskell.org/t/alternatives-to-pvp-for-alpha-exploratory-packages/7612/14)
> 
> Hackage is a permanent storage, one should not release stuff there just to experiment on.

- 

> [@](#):
>
> [f-a:](http://discourse.haskell.org/t/deciding-whether-to-create-a-new-package-or-take-over-an-abandoned-one/6285/2)
> 
> […] Hackage real estate is a finite resource.

---

<div class="post-metadata">

**Author:** ![Ambrose](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ambrose/32/5672_2.png) [@Ambrose](https://discourse.haskell.org/u/Ambrose)\
**Post date:** [January 14, 2024, 5:38am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/7 "2024-01-14T05:38:34Z")

</div>

Right, but the point still stands. The user isn’t gobbling up generic names. These names are super specific. It’s only a problem if someone else wants the names.

Citing “Hackage is a finite resource” isn’t a compelling argument on its own given the context.

---

<div class="post-metadata">

**Author:** ![atravers](https://avatars.discourse-cdn.com/v4/letter/a/45deac/32.png) [@atravers](https://discourse.haskell.org/u/atravers)\
**Post date:** [January 14, 2024, 6:32am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/8 "2024-01-14T06:32:06Z")

</div>

So how many packages is this person maintaining…over 100 of them. That’s a _lot_ of packages for one person to be involved with - I for one would be worried about _“burnout”_:

- if the majority of those packages have groups of maintainers, there’s some redundancy;

- otherwise, all but a few of those packages would eventually succumb to bit-rot, but they would still appear in searches nonetheless - forever.

---

<div class="post-metadata">

**Author:** ![atravers](https://avatars.discourse-cdn.com/v4/letter/a/45deac/32.png) [@atravers](https://discourse.haskell.org/u/atravers)\
**Post date:** [January 14, 2024, 6:35am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/9 "2024-01-14T06:35:23Z")

</div>

> [@ocramz](#):
>
> I’m a bit concerned by the large amounts of single-purpose packages […]

…actually, they’re all package _candidates_ (in that list anyway). So my question would be:

- can the uploader or maintainer/s remove their own package candidates from Hackage?

(…so far, my web-searches have yet to find the answer.)

---

<div class="post-metadata">

**Author:** ![jaror](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jaror/32/3271_2.png) [@jaror](https://discourse.haskell.org/u/jaror)\
**Post date:** [January 14, 2024, 9:38am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/10 "2024-01-14T09:38:55Z")

</div>

> [@atravers](#):
>
> can the uploader or maintainer/s remove their own package candidates from Hackage?

Yes, I’ve done this recently when someone asked me nicely if they could have the name.

---

<div class="post-metadata">

**Author:** ![taylorfausak](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/taylorfausak/32/54_2.png) [@taylorfausak](https://discourse.haskell.org/u/taylorfausak)\
**Post date:** [January 14, 2024, 1:42pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/11 "2024-01-14T13:42:46Z")

</div>

What’s the problem here? Is it that this user has uploaded “too many” packages? If so, they’re far from the most prolific user on Hackage:

1. [BrendanHay](https://hackage.haskell.org/user/BrendanHay): 532 packages
2. [MichaelSnoyman](https://hackage.haskell.org/user/MichaelSnoyman): 220 packages
3. [HenningThielemann](https://hackage.haskell.org/user/HenningThielemann): 188 packages
4. [phadej](https://hackage.haskell.org/user/phadej): 179 packages
5. [NikitaVolkov](https://hackage.haskell.org/user/NikitaVolkov): 149 packages
6. [EdwardKmett](https://hackage.haskell.org/user/EdwardKmett): 132 packages
7. [Norfair](https://hackage.haskell.org/user/Norfair): 128 packages
8. [ryanglscott](https://hackage.haskell.org/user/ryanglscott): 116 packages
9. [HerbertValerioRiedel](https://hackage.haskell.org/user/HerbertValerioRiedel): 115 packages
10. [andrewthad](https://hackage.haskell.org/user/andrewthad): 113 packages
11. [DonaldStewart](https://hackage.haskell.org/user/DonaldStewart): 111 packages
12. [OleksandrZhabenko](https://hackage.haskell.org/user/OleksandrZhabenko): 104 packages

---

<div class="post-metadata">

**Author:** ![Ambrose](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ambrose/32/5672_2.png) [@Ambrose](https://discourse.haskell.org/u/Ambrose)\
**Post date:** [January 14, 2024, 2:36pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/12 "2024-01-14T14:36:01Z")

</div>

I don’t think they’re all candidates - although the Hackage UI did confuse me too 😆 many of the packages have many versions.

---

<div class="post-metadata">

**Author:** ![effectfully](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/effectfully/32/3266_2.png) [@effectfully](https://discourse.haskell.org/u/effectfully)\
**Post date:** [January 14, 2024, 6:26pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/13 "2024-01-14T18:26:59Z")

</div>

> [@atravers](#):
>
> all but a few of those packages would eventually succumb to bit-rot, but they would still appear in searches nonetheless - forever.

1. not necessarily
2. even if so, it may take quite a while making it worthwhile
3. you can’t tell which will bitrot and which will not
4. even a bit-rotted package can be of use, because someone may fork it and fix or even just straight copy-paste the pieces that still work into their project

As for the Hackage is a finite resource concern, it can mean either of the two:

1. mass-squatting valuable names – we very clearly don’t see that here
2. the amount of data uploaded to Hackage is atypically large – not what we’re discussing, because a large number of maintained packages does not necessarily imply that a large amount of data is being uploaded, especially given the “single-purpose packages” part from the OP

It’s probably indeed a good idea to keep track of how much data is getting uploaded to Hackage on a daily basis / per user / per package / etc, but then it’s better to shift focus to that rather than count packages.

---

<div class="post-metadata">

**Author:** ![atravers](https://avatars.discourse-cdn.com/v4/letter/a/45deac/32.png) [@atravers](https://discourse.haskell.org/u/atravers)\
**Post date:** [January 14, 2024, 10:18pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/14 "2024-01-14T22:18:12Z")

</div>

> [@effectfully](#):
>
> 1. the amount of data uploaded to Hackage is atypically large […]

In the same way I apparently shouldn’t be concerned about matters like bitrot, maintainer _“burnout”_, or the depletion of the Hackage name space, perhaps you shouldn’t be so concerned about deciding on what is atypical or otherwise with regards to uploading - the Hackage infrastructure should be able to cope with the addition of more storage, at least in the short to medium term. But I’m no **chreekat** either…

---

<div class="post-metadata">

**Author:** ![effectfully](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/effectfully/32/3266_2.png) [@effectfully](https://discourse.haskell.org/u/effectfully)\
**Post date:** [January 14, 2024, 11:06pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/15 "2024-01-14T23:06:42Z")

</div>

> [@atravers](#):
>
> In the same way I apparently shouldn’t be concerned about matters like bitrot, maintainer _“burnout”_, or the depletion of the Hackage name space

I’m not attempting to tell you what you should or shouldn’t be concerned about, just expressing my subjective opinion, please feel free to disagree (or ignore etc).

> [@atravers](#):
>
> perhaps you shouldn’t be so concerned about deciding on what is atypical or otherwise with regards to uploading

Didn’t mean to do that, only suggested that if we were to discuss these matters, it would make sense to discuss _them_ rather than some arbitrary metric such as the number of packages uploaded by a person.

---

<div class="post-metadata">

**Author:** ![jackdk](https://avatars.discourse-cdn.com/v4/letter/j/9f8e36/32.png) [@jackdk](https://discourse.haskell.org/u/jackdk)\
**Post date:** [January 14, 2024, 11:12pm UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/16 "2024-01-14T23:12:59Z")

</div>

> [@taylorfausak](#):
>
> [BrendanHay](https://hackage.haskell.org/user/BrendanHay): 532 packages

Remark: each service binding for both `amazonka` and `gogol` was split out into its own package so you only built the necessary service bindings — those packages predate the ability for Cabal to have multiple public libraries, and have been held back by other tools (e.g., Stack, nixpkgs) being slow to support this feature. (Eventually, I hope to consolidate `amazonka`, but there’s a lot that needs to happen first.)

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [January 15, 2024, 3:37am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/17 "2024-01-15T03:37:56Z")

</div>

About time we blocked Edward from polluting the namespace 😅

Agreed, big -1 for making hackage a “I find this useful or not”-democracy.

If people want user namespaces, make cabal and hackage support them: [Namespacing packages · Issue #924 · haskell/hackage-server · GitHub](https://github.com/haskell/hackage-server/issues/924)

---

<div class="post-metadata">

**Author:** ![ocramz](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ocramz/32/3713_2.png) [@ocramz](https://discourse.haskell.org/u/ocramz)\
**Post date:** [January 15, 2024, 7:12am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/18 "2024-01-15T07:12:05Z")

</div>

how about “polluting a common resource with irreversible changes”, does that resonate instead?

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [January 15, 2024, 7:29am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/19 "2024-01-15T07:29:07Z")

</div>

If you’re worried, try to contact the person first (the email address is there and public).

Then contact the hackage admins.

Why this is a thread here I don’t understand. Public escalation shouldn’t be the first option. Maybe they’ll be embarrassed reading this and don’t know how to structure packages properly? Who knows.

---

<div class="post-metadata">

**Author:** ![ocramz](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ocramz/32/3713_2.png) [@ocramz](https://discourse.haskell.org/u/ocramz)\
**Post date:** [January 15, 2024, 7:32am UTC](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555/20 "2024-01-15T07:32:42Z")

</div>

I put this out for discussion to calbirate my understanding first. As it’s plain from the answers above, it’s unclear how to address this sort of issue.

[Next page](https://discourse.haskell.org/t/a-too-prolific-hackage-user/8555.md?page=2)
