Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-31 Thread Alex Crichton
 There's a cron job running which will trigger each build each night
 after the nightlies have finished building, and the .travis.yml script
 for these repos are all wired to nightlies rather than the PPA.


 Could the source code for this cron job be published, with instructions on
 how to get API keys or whatever Travis wants? I tried
 https://github.com/patrickkettner/travis-ping , but only got a mysterious
 error messages and didn’t feel like debugging that code.

I've posted the scripts here: https://github.com/alexcrichton/bors-travis
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-30 Thread Simon Sapin

On 29/07/14 23:30, Alex Crichton wrote:

[...]

We plan to implement any necessary infrastructure to ensure that the crates
move out of the rust repository maintain the same level of quality they
currently have.


Will these crates’ documentation be available online?

In rust-url, rust-cssparser, and Servo, I have Travis-CI setup to 
generate documentation with rustdoc and, for successful builds on 
master, upload it to GitHub Pages. The end result looks like this:


http://servo.github.io/rust-cssparser/cssparser/index.html

See at the end of this email for how this works.


Long term, I’d like Rust to have an official package index, like 
Python’s PyPI: https://pypi.python.org/


PyPI provides free hosting for documentation of Python projects. I’d 
like Rust to have something like this too. GitHub Pages works and exists 
now, but I’m not a fan of generated files in the source repository, even 
in a separate branch.




To this extent, the current process for moving a crate out of the standard
distribution will be as follows:

1. A member of the core team will be contacted to create the repository
   `rust-lang/$foo`.
2. A PR will be made against `rust-lang/$foo`


I’ve just checked: GitHub does not allow forking (and therefore making 
PRs to) an empty repository, so the person creating the repository will 
have to at least check the Initialize this repository with a README 
checkbox to make a dummy first commit.




with the current copy of the
code from `rust-lang/rust`. This PR will be expected to have the
following source structure:

  * Cargo.toml - a manifest to build this repo as a cargo package
  * .travis.yml - configuration to run automated tests on travis. A
  sample can be found for hexfloat [1]
  * LICENSE-{MIT,APACHE} - copied over from rust-lang/rust
  * src/ - the same source structure as the folder in rust-lang/rust


This should also include a README.md file containing at least of copy of 
the crate’s docstring.




3. A PR will be made against `rust-lang/rust` which will flag the relevant
library as `#[deprecated]` with a message pointing at `rust-lang/$foo`

In order to ensure that these repositories continue to stay up to date, we
will have the following process in place:

1. Each repository will be hooked up to Travis CI and will be built each
night once the new nightlies are available.


How will this be achieve? http://www.rust-ci.org/ does it, but I’d like 
to see something more official and tied to the rust-lang.org binary 
nightlies rather than the Ubuntu PPA.




[...]



Regarding documentation on GitHub pages mentioned earlier, the script 
doing it looks like this:


https://github.com/servo/rust-cssparser/blob/331e5695dc/.travis.yml

The `meta http-equiv=refresh ...` line is so that the URL 
http://servo.github.io/rust-cssparser/ is not a 404 error. (rustdoc does 
not generate anything there.)


ghp-import resets a git branch (defaults to gh-pages) to contain exactly 
what’s in a given directory, regardless of what the branch previously 
contained.


The secure line is created with `travis encrypt -r 
servo/rust-cssparser TOKEN=[hex string]`, where [hex string] is a GitHub 
access token for a user with push access to the repository. (I created 
https://github.com/rustdoc for this purpose.)


http://docs.travis-ci.com/user/encryption-keys/
https://help.github.com/articles/creating-an-access-token-for-command-line-use

--
Simon Sapin
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-30 Thread Ilya Dmitrichenko
Ok, I got the basic going with a temporary for of `libsemver` here:
  - https://travis-ci.org/errordeveloper/rust-libsemver/builds/31217706
  - https://github.com/errordeveloper/rust-libsemver

Few questions:

  - should I bother with enabling OS X beta on Travis?
  - what naming convetion we gonna use? shall it be `rust-lib{name}`?

On 30 July 2014 10:44, Simon Sapin simon.sa...@exyr.org wrote:

 Long term, I'd like Rust to have an official package index, like Python's
 PyPI: https://pypi.python.org/

I though Cargo had an early version of this... Although, I don't think
this is even needed. People should just use git (or other SCM) in a
decent fashion, with a branch policy and tagging. If you have a
central index, it's a point of failure and you may end-up with
bullshit like mirroring.

 PyPI provides free hosting for documentation of Python projects. I'd like
 Rust to have something like this too. GitHub Pages works and exists now, but
 I'm not a fan of generated files in the source repository, even in a
 separate branch.

I think godoc.org (http://godoc.org/) is pretty sweet, although it
doesn't handle revisions, as I can see. Well, neither does `go get`.
Anyhow, I think rdoc.info (http://rdoc.info/) is probably the most
extensive implementation of an auto-magic docs site.

 I've just checked: GitHub does not allow forking (and therefore making PRs
 to) an empty repository, so the person creating the repository will have to
 at least check the Initialize this repository with a README checkbox to
 make a dummy first commit.

Yeah, could someone create empty repos for all the libs we agreed to pull out?

 How will this be achieve? http://www.rust-ci.org/ does it, but I'd like to
 see something more official and tied to the rust-lang.org binary nightlies
 rather than the Ubuntu PPA.

Hm... I think we should complete the splitting part, and then look back at this.

Perhaps, in the library repos, we can create tags with revision of the
compiler that it passed the test on. Crago, in turns, could pick
lookup these tags and checkout the relevant version. How do people
find this idea? Does Cargo even handle compiler versions at the
moment? If not, it's certainly an important feature to add.

 Regarding documentation on GitHub pages mentioned earlier, the script doing
 it looks like this:

 https://github.com/servo/rust-cssparser/blob/331e5695dc/.travis.yml

I pick some bit of yours into mine and we can hopefully come up with a
simple template for everyone.
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-30 Thread Alex Crichton
 We plan to implement any necessary infrastructure to ensure that the
 crates
 move out of the rust repository maintain the same level of quality they
 currently have.


 Will these crates’ documentation be available online?

At this time there are no plans for this, but we're certainly open to
options! The need for these is a little less pressing now that `cargo
doc` is implemented, but this is still a very important aspect to
these crates.

 Long term, I’d like Rust to have an official package index, like Python’s
 PyPI: https://pypi.python.org/

We would as well! This will manifest itself in the form of a central
package registry which cargo will also use for downloading remote
packages and such.

 To this extent, the current process for moving a crate out of the standard
 distribution will be as follows:

 1. A member of the core team will be contacted to create the repository
`rust-lang/$foo`.
 2. A PR will be made against `rust-lang/$foo`


 I’ve just checked: GitHub does not allow forking (and therefore making PRs
 to) an empty repository, so the person creating the repository will have to
 at least check the Initialize this repository with a README checkbox to
 make a dummy first commit.

Aha, thanks!

 3. A PR will be made against `rust-lang/rust` which will flag the relevant
 library as `#[deprecated]` with a message pointing at `rust-lang/$foo`

 In order to ensure that these repositories continue to stay up to date, we
 will have the following process in place:

 1. Each repository will be hooked up to Travis CI and will be built each
 night once the new nightlies are available.


 How will this be achieve? http://www.rust-ci.org/ does it, but I’d like to
 see something more official and tied to the rust-lang.org binary nightlies
 rather than the Ubuntu PPA.

There's a cron job running which will trigger each build each night
after the nightlies have finished building, and the .travis.yml script
for these repos are all wired to nightlies rather than the PPA.
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-30 Thread Alex Crichton
 Ok, I got the basic going with a temporary for of `libsemver` here:
   - https://travis-ci.org/errordeveloper/rust-libsemver/builds/31217706
   - https://github.com/errordeveloper/rust-libsemver

Awesome! I've created a new repo for you to make a PR against:
https://github.com/rust-lang/semver

   - should I bother with enabling OS X beta on Travis?

Not at this time.

   - what naming convetion we gonna use? shall it be `rust-lib{name}`?

rust-lang/{name}


 I've just checked: GitHub does not allow forking (and therefore making PRs
 to) an empty repository, so the person creating the repository will have to
 at least check the Initialize this repository with a README checkbox to
 make a dummy first commit.

 Yeah, could someone create empty repos for all the libs we agreed to pull out?

This will be done on a case-by-case basis, feel free to just ping me
or others on IRC and we'll make a repo!
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-30 Thread Neil LoBracco
I'd like to suggest - assuming it's not implied - that all aforementioned
PRs should preserve history to date, rather than just having a copy of the
files as they are at present.
Decent walkthrough using a subtree merge  -
http://stackoverflow.com/questions/359424/detach-subdirectory-into-separate-git-repository/17864475#17864475
-Neil


On Tue, Jul 29, 2014 at 6:30 PM, Alex Crichton a...@crichton.co wrote:

 Now that cargo is starting to become a larger part of the Rust ecosystem
 it's time for some of the crates as part of the standard distribution to
 move out of the main rust repository. This movement has been planned for
 quite some time now, and it has only recently become possible with the
 advent of cargo.

 Starting today, we'd like to evolve crates not needed by rustc itself
 outside of the compiler wherever possible. This will reduce cycle time on
 development of these libraries, allow them to develop independently from
 rustc, and hopefully allow them to be more focused in their target goals.

 The process of moving crates out of the standard distribution will be an
 ongoing and evolving one. We currently have the benefit of being able to
 move the entire distribution forward in one atomic step with everything in
 one repository, but this quickly becomes infeasible with many repositories.
 We plan to implement any necessary infrastructure to ensure that the crates
 move out of the rust repository maintain the same level of quality they
 currently have.

 To this extent, the current process for moving a crate out of the standard
 distribution will be as follows:

 1. A member of the core team will be contacted to create the repository
   `rust-lang/$foo`.
 2. A PR will be made against `rust-lang/$foo` with the current copy of the
code from `rust-lang/rust`. This PR will be expected to have the
following source structure:

  * Cargo.toml - a manifest to build this repo as a cargo package
  * .travis.yml - configuration to run automated tests on travis. A
  sample can be found for hexfloat [1]
  * LICENSE-{MIT,APACHE} - copied over from rust-lang/rust
  * src/ - the same source structure as the folder in rust-lang/rust

 3. A PR will be made against `rust-lang/rust` which will flag the relevant
library as `#[deprecated]` with a message pointing at `rust-lang/$foo`

 In order to ensure that these repositories continue to stay up to date, we
 will have the following process in place:

 1. Each repository will be hooked up to Travis CI and will be built each
night once the new nightlies are available.
 2. A status page [2] is provided to get a quick glance at the status of all
officially supported repositories.

 The amount of infrastructure around keeping these repositories up to date
 will likely change over time, but this is the current starting point for
 automation.

 [1]: https://github.com/rust-lang/hexfloat/blob/master/.travis.yml
 [2]: http://buildbot.rust-lang.org/travis/travis.html
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-30 Thread Simon Sapin

On 30/07/14 15:59, Alex Crichton wrote:

We plan to implement any necessary infrastructure to ensure that the
crates
move out of the rust repository maintain the same level of quality they
currently have.



Will these crates’ documentation be available online?


At this time there are no plans for this, but we're certainly open to
options!


This sounds like a significant regression :/



The need for these is a little less pressing now that `cargo
doc` is implemented, but this is still a very important aspect to
these crates.


Yeah, we can easily have Travis run `cargo doc`. The question is where 
to host the result.




There's a cron job running which will trigger each build each night
after the nightlies have finished building, and the .travis.yml script
for these repos are all wired to nightlies rather than the PPA.


Could the source code for this cron job be published, with instructions 
on how to get API keys or whatever Travis wants? I tried 
https://github.com/patrickkettner/travis-ping , but only got a 
mysterious error messages and didn’t feel like debugging that code.


--
Simon Sapin
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-29 Thread Thad Guidry
[snip]


 2. A status page [2] is provided to get a quick glance at the status of all
officially supported repositories.

 The amount of infrastructure around keeping these repositories up to date
 will likely change over time, but this is the current starting point for
 automation.

 [1]: https://github.com/rust-lang/hexfloat/blob/master/.travis.yml
 [2]: http://buildbot.rust-lang.org/travis/travis.html


So going forward...

Where can we look in source / folders / files ... to see what is an
officially supported repository and what is not ?  Let's say I don't want
to have to look at the Travis view for that info, but just look at source
to figure this out.

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-29 Thread Ben Harris
They are still officially supported, but they will live in
https://github.com/rust-lang/ instead of with the Rust compiler.


On 30 July 2014 06:45, Thad Guidry thadgui...@gmail.com wrote:

 [snip]


 2. A status page [2] is provided to get a quick glance at the status of
 all
officially supported repositories.

 The amount of infrastructure around keeping these repositories up to date
 will likely change over time, but this is the current starting point for
 automation.

 [1]: https://github.com/rust-lang/hexfloat/blob/master/.travis.yml
 [2]: http://buildbot.rust-lang.org/travis/travis.html


 So going forward...

 Where can we look in source / folders / files ... to see what is an
 officially supported repository and what is not ?  Let's say I don't want
 to have to look at the Travis view for that info, but just look at source
 to figure this out.

 --
 -Thad
 +ThadGuidry https://www.google.com/+ThadGuidry
 Thad on LinkedIn http://www.linkedin.com/in/thadguidry/

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-29 Thread Erick Tryzelaar
One additional way for us to say inside rust itself if a library is
officially supported would be for us to the #[experimental] / #[unstable] /
#[stable] / etc tags inside the https://github.com/rust-lang/ libraries.
#[experimental] libraries may or may not survive, but #[unstable] and above
will probably be around in one form or another.



On Tue, Jul 29, 2014 at 4:11 PM, Alex Crichton a...@crichton.co wrote:

 Currently the threshold for being officially supported will be one
 of being in the rust-lang organization or being on the travis
 dashboard. At this time there are no plans to have an in-tree way to
 distinguish, although I suspect that a README with a description would
 likely suffice.

 On Tue, Jul 29, 2014 at 3:45 PM, Thad Guidry thadgui...@gmail.com wrote:
  [snip]
 
 
  2. A status page [2] is provided to get a quick glance at the status of
  all
 officially supported repositories.
 
  The amount of infrastructure around keeping these repositories up to
 date
  will likely change over time, but this is the current starting point for
  automation.
 
  [1]: https://github.com/rust-lang/hexfloat/blob/master/.travis.yml
  [2]: http://buildbot.rust-lang.org/travis/travis.html
 
 
  So going forward...
 
  Where can we look in source / folders / files ... to see what is an
  officially supported repository and what is not ?  Let's say I don't
 want
  to have to look at the Travis view for that info, but just look at
 source to
  figure this out.
 
  --
  -Thad
  +ThadGuidry
  Thad on LinkedIn
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev