Am 29.02.2016 um 10:46 schrieb Sebastiaan Koppe:
On Monday, 29 February 2016 at 09:27:50 UTC, sigod wrote:
On Monday, 29 February 2016 at 08:02:51 UTC, mahdi wrote:
On Monday, 29 February 2016 at 06:10:17 UTC, Chris Wright wrote:
[...]
The aim is to make package distribution easier and more
straightforward. If someone has done some development on his local
machine and wants to distribute it, it's better not to force him to
create a repo on Github or ... .
And you end up creating your own repository hosting. Or you would
allow users to not use (D)VCS. Which will end up as a nightmare.
Yeah that would be a nightmare. Plus the storage requirements. Better
have github/bitbucket do it for you.
Storage requirements would definitely be a problem. Hosting a database
with metadata is one thing, but uploading potentially hundreds of
megabytes or even gigabytes per package is another. The metadata alone
takes up about 1.5 GiB right now. Should we ever grow as much as other
languages have in terms of package count, hosting package contents is
definitely out of the question without some sort of corporate investment.
The thing I do run into occasionally is when I am modifying two dub
package, where one depends on the other, and I am pushing a new
version/tag to github. It generally takes a while before code.dlang.org
picks up on new versions being available, and until that time I cannot
compile the other package which depends on the new version.
Locally I can do `dub add-local`, but I don't want to do that on the CI,
nor on other developers machine whenever they get my updated dub.json.
Granted, it doesn't take that long, but seeing how fast other services
pick up on github/bitbucket changes (wercker starts building a mere 0.5
secs after a push), I wonder why code.dlang.org is being so slow about it.
Currently all packages are polled for changes every 30 minutes.
We will at some point have to implement the use of push notifications
for changes, but that requires some work (supporting GitHub-OAuth and
implementing the push endpoint) and it requires the repositories to be
re-registered with OAuth.
BTW, there is a "Trigger manual update" button on the package management
page. If you are the owner, you can usually get instant updates that way.