yordisprieto

yordisprieto

Everything that I shared is based on my experience, please don’t be offensive.

npm, ruby gems and now hex. I always have to deal with the same problem: find the best package for my project.

I notice that engineers in general like to just go and reimplement everything from scratch when something doesn’t work as them spec, or even sometimes because they don’t understand the current one.
That’s why you go and search in those websites for some dependencies you find out a huge amount of packages that basically try to resolve exactly the same issue.

I never understand why we (programmers in general) don’t work together as a team, because will always be better to work together and think more than one person in the same situation.

Yes, I understand that sometimes we got so deep in one implementation that we can’t use some packages or the trade off is huge compared with recreate your own.

I also understand that sometimes I will find some project driven by dictatorships, or even people don’t want to change something because somebody else will break.
I am not saying that having a LEADER in projects is bad, also I am not saying that we shouldn’t help “legacy” people

but,

we can’t hold some implementation, or even don’t change something that TECHNICALLY is better because somebody else will break, that’s why we have versioning and is their responsibility to upgrade or not.

All of those and many more problems can be resolve and I would like to find the solution

Anyway

I would like to see a little badge in HEX packages, that means that those packages are well supported and maintained.
Also I will group the packages in categories and I will only give the badge to the one that is the common and mainly use .This way we help people like me and the community.

I don’t believe in having a lot of packages that literally fix the same problem. I prefer to work together.
I would like to continue writing but I think you get the main idea.

And please share your opinion because this is really important for the Elixir community, now that we are smaller enough for curated HEX.

Let’s think together and work together

cc: @josevalim @chrismccord @ericmj

First 10 of 59 Posts Switch mode

NobbZ

NobbZ

There is already awesome-elixir and also there has been another list that had an interactive search AFAIR and also tagged its packages, but I can’t remember the URL.

Also I do not like to have some kind of batch on hex. Hex is the “central authority” when it comes to packages. If it were advertising one package over another it would have a huge impact on the community and how new packages will be created or found.

yordisprieto

yordisprieto OP

I wouldn’t mind to support the idea of badges or something. Yes I don’t want Hex to hide any package at all but I would like to see features that I allow me to filter Hex packages.

We will end like npm where is pretty much useless to find anything on it because is just bad unless you are familiar with the packages. I just want to create a community mindset where we work together instead of going alone and creating packages that fix the same issue.

Sometimes is good to have some common vision (like Ecto), and there I relay on the more experienced developers.
This is about something like @h4cc package that have 1,580 issues related to “Evaluate Package”. Let’s bring that to Hex instead.

Even go father and create subset where one package could compete each other and the community decide about the final decision

ericmj

ericmj

Elixir Core Team

I think it’s better to let Hex focus on serving packages. It would be too much work for me to go through 2800 packages and evaluate if they are good or bad and then decide which ones are the “best” in each category. The other alternative would be to have the “community” vote, but it’s not clear from your post how that should actually work. I don’t think it should be part of Hex either since Hex should focus on its core features, which is publishing and serving packages. There’s a lot of work running and maintaining a package manager and the core team has a long list of more important enhancements and features to work on before we can focus on curation or community voting.

It’s not a bad idea to have a place where you can find recommended packages. There is GitHub - h4cc/awesome-elixir: A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things. Updates: · GitHub and http://toolbox.elixir.pm/ already that does similar things. Maybe you can help out on those efforts? Both those projects use the HTTP API from the specifications and you should be able to build a service with the API that would be just as good as if the service was part of Hex.

yordisprieto

yordisprieto OP

Right now, either inside Hex or outside but a place that allow us to go and pretty much know that we have a curated list. It’s more around that idea.

I can’t give you the final answer in how to curated, that’s why I created this post and expecting people to participate and try to resolve a legit problem in packages management systems.

We as a community can contribute to this list but as well have some management and inputs from the “leaders” of Elixir community.

AstonJ

AstonJ

I think sorting by popularity (downloads) has often served as a really good way to see what is ‘hot’.

I like the idea of voting and reviews/comments - however I am not sure Hex.pm would be the best place for it as it would add a lot of work for Eric and the maintainers (because they will require some sort of moderation, and not just for spam).

What could be really handy is whenever a package has an associated github then the number of watchers and stars are added (updated daily or weekly).

hykw

hykw

What could be really handy is whenever a package has an associated github then the number of watchers and stars are added (updated daily or weekly).

:+1:
I agree the idea.

gausby

gausby

I don’t know how any of these measurements of package «popularity» would work. I fear that anything we could come up with would become a skewed popularity contest.

Had we had a system that let people vote for their favourite package back when Chris started Phoenix it would have been shadowed by the popularity of Dynamo, which was build by Jose himself, and would gain tons of up-votes because of that. (Not saying this is how it would have panned out—this example is based on a big «what-if», and is pure fiction)

Besides that, stars on Github is not a good measure of what is good about the project. Say we have a project with a very funny Readme; tons of people would hit that star because of the lols. It might not solve the problem it claims to do, but it has a really funny Readme…

…and what if some popular twitter account post a link to a project on Github? Hoard of people would come to the page, each with a different idea about what it means to star something; some of them might use stars for «Interesting, should look into later», others might think «I have vetted this project and I use it in production.»

Not to mention all the projects that are not hosted on GitHub.

The best thing I’ve seen is something some of my friends whipped together for NPM called http://node-modules.com/ If you personalise your account the «popularity contest» is based on what your friends/followed on Github likes—not the entire world. This is not perfect, as it require the project to be on Github, but one great benefit about this is that you can ask your friends about their experience with a given package.

Hex should not deal with popularity contests in my opinion—only serve packages. A thing like node-modules for hex would be great but it should be a stand-alone service.

yordisprieto

yordisprieto OP

This is why I need you (community) to decide which one is most proper package in specific group.

We have to either stop going crazy like NPM and create packages that resolve exactly the same issue in almost exactly the same or do something for at least help the community.

This is a rough task and we need to work together specially the Leaders of Elixir community. No everybody will get some badge identifier that easier.

And yes I dont want to relay on Stars on Github or stuff like that. I want to work with you (community) in a solution that at least help us.

I really don’t want to see what happen with NPM guys :icon_sad:

P.S: My searching for elasticsearch packages, I got this GitHub - Zatvobor/tirexs: An Elixir flavored HTTP client and DSL library for Elasticsearch · GitHub and this one GitHub - werbitzky/elastix: A simple Elasticsearch REST client written in Elixir. · GitHub
Who is the best one? At the end of the day no matter what they are trying to resolve the same issue. Just merge the projects, bring the best ideas of both sides and booom the best for the community.
But those contributors have to be open to feedbacks and make changes when are required, even when you break people (that’s why versioning exists) and …

Please, either in hex.pm or any website, let’s fix this issue, I take responsibility to implement it but I need your feedbacks about it in how could work.

yordisprieto

yordisprieto OP

For example, if I just type ORM keyword I will separate in two list the packages. I would put the “recommended by the community” on top and whatever else in the bottom.

As you can see, I never said: hide packages, but just at least is something that help the community. I prefer people contributing to some package than creating their own, but again Owners and Contributors have to be really open to feedbacks and changes.

sotojuan

sotojuan

Maybe it’s too late now but Ember does something like this. Every package has a score:

Ember Observer Click on “Explain this” under the score.

Package curation is tricky and imprecise though, especially in the early days of a language. Also, open source is not a job. I may write the best and most maintained package ever, but tomorrow I can stop working on it forever. What then?

I don’t believe in having a lot of packages that literally fix the same problem. I prefer to work together.
I would like to continue writing but I think you get the main idea.

Too late for that. Search for “cache” in Hex :stuck_out_tongue: I’m a pessimist so I think Hex will be a mess like every package manager is, but we’ll get on by using the same 10-20 dependencies in most of our apps so whatever’s in Hex won’t matter much. Hex’s problem is to serve and host packages, not decide which is “best”, which is hard to do and will lead to politics/drama anyway. Just let Hex be messy. I take the time to review possible dependencies and their repos to see if they’re maintained well, but I don’t think the community can do that as a whole.

Check out: npms We can at least have a search like that for Hex. It all comes down to search: I don’t care if there are 1000 bad cache implementations if search returns the best one.

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 91898 914
New
AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4616 55835 594
New
byu
@chrismccord : I just saw the Extract AGENTS.md from Phoenix.new into phx.new generator commit to the phoenix project. My initial shotgu...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement