[erlang-questions] where did my code come from?

jm jeffm@REDACTED
Wed Sep 14 03:18:20 CEST 2011

You appear to be the first person in this thread that has addressed the 
question that I've been thinking. "How to find the repository?" Most, so 
far, have used fixed URLs, but as we all know these tend to be out of 
date on a regular basis. The larger the project, the more dependency, 
the more you desperately need this thing to work, the more pushed for 
time you are, the more likely you are to find that the site which has 
the module you need is down or no longer exists. Here's roughly what 
I've been think as I read this thread,

Have a file which lists mirror sites from which you can pull a list of 
repositories. Much like the /etc/resolve.conf file for dns.
Have a global conf file to tune repo/lookup site selection and other 
parameters similar to debian package management.
Have a project conf file to fine tune the global settings.
Have a per project file which lists app/module/fun dependances. This 
could be auto-generated using tools.
As part of this a tool to make it easy to system packages (eg rpm, deb, 
open package, etc).

So far I don't see a need for a -location compiler directive at the 
source file level. May be I'm missing something.

However, the app/module/fun dependance  list would need a better 
signature than app:module:fun/count or version. It's would need some 
form of crypto hash. How would you calculate such a hash?

Having a resolution down to the function level would allow you to know 
if you can safely upgrade to a future (or past) module version or not 
automatically even before compiling.  It seems that there are projects 
out there that do A+C or A+B, but none that do the full raft of things.

Finally, the key I think is to eliminate single points of failure such 
as being reliant on one key website. A P2P module distribution system 
would be great.


On 14/09/11 5:44 AM, David Goehrig wrote:
> This is basically how most real world JavaScript applications already work, so it simply falls to building a nice distributed registry that can be universally queried.
> Erlang txt fields in DNS anyone?
> Also since rebar already allows you to specify your dependencies as git tags, we already have a system that will automatically pull the specific source (or latest if unspecified) and build your application.
> Dave

More information about the erlang-questions mailing list