Re: [rust-dev] Practical usage of rustpkg

2013-12-04 Thread Jordi Boggiano
On Tue, Dec 3, 2013 at 8:44 PM, SiegeLord slab...@aim.com wrote:
 I don't think any of these options are ideal. I don't want to suggest
 solutions to these issues because I'm not sure how things are supposed to be
 used/what the planned design is. Does anybody use rustpkg seriously today?
 Is everybody making workspaces with a github.com/user directory where they
 develop their software?

I usually (i.e. in other languages I work with) develop dependencies
in-line as they were cloned by the package manager, at least if they
need deep integration with the surrounding project and can not be
easily tested/developed in isolation. It's not such a horrible
situation as long as the package manager is smart enough to avoid
wiping your stuff on its own.

That said, a pretty good option I think is to have a command like npm
link [1] that would allow you to tell rustpkg to set up a symlink to
another dir on the disk, yet without interfering/polluting the
project's source itself.

[1] https://npmjs.org/doc/cli/npm-link.html

Cheers

-- 
Jordi Boggiano
@seldaek - http://nelm.io/jordi
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Practical usage of rustpkg

2013-12-04 Thread Tim Chevalier
FYI, there's a related bug open:

https://github.com/mozilla/rust/issues/8673 (this is about the problem
of repeating the same package ID#revision string in different files
and not having a way to abstract it out)

The preferred way to work on a dependency and the package that depends
on it at the same time is to make a local copy and put it in your
RUST_PATH; this copy will be found before rustpkg looks for the
upstream copy and/or for an automatically-cached copy of that. The
local copy has to have the same package ID, of course, so for a
package like github.com/foo/bar, you would have to have a
github.com/foo/bar directory in your RUST_PATH.

Hope that helps!
Cheers,
Tim


On Tue, Dec 3, 2013 at 11:44 AM, SiegeLord slab...@aim.com wrote:
 So I've been thinking for awhile about how one would actually use rustpkg.
 Let me first outline my use case. I have a library and a program that uses
 that library, both of which I host on GitHub. One of the features of the
 rustpkg system is that I should be able to write this to refer to the
 library in my program:

 extern mod lib = package_id;

 Unfortunately, there is no obvious thing to put into the 'package_id' slot.
 There are two options:

 First, I could use github.com/SiegeLord/library as my package_id. This is
 problematic, as it would require one of these sub-optimal courses of action:

 - Stick the source of the library into workspace/src/library where I would
 actually develop and then use a duplicate package in the
 workspace/src/github.com/SiegeLord/library that would be created by rustpkg
 (the program is located in workspace/src/program). Somehow this duplicate
 package will be synced to the actual package: either through pushing to
 GitHub and then pulling somehow via rustpkg (this is less than ideal, as I
 may want to test WIP changes without committing them elsewhere/I may have no
 internet connection e.g. when traveling), or some manual, local git
 operation.

 - Stick the source of the library into
 workspace/src/github.com/SiegeLord/library and develop the library there.
 There is no duplication, but it really seems bizarre to me to locate a
 project in a directory named like that. Also, I'd be a bit paranoid about
 rustpkg not realizing that I never want to communicate with GitHub and
 having it accidentally overwriting my local changes.

 The second option is to use library as the package id. This allows me to
 locate my library in a logical location (workspace/src/library), but it
 prevents other users of my program from building it automatically.
 Essentially what they'll have to do is to manually check out the library
 repository inside their workspaces so as to create the workspace/src/library
 directory on their system: the `extern mod` syntax will not work otherwise.

 I don't think any of these options are ideal. I don't want to suggest
 solutions to these issues because I'm not sure how things are supposed to be
 used/what the planned design is. Does anybody use rustpkg seriously today?
 Is everybody making workspaces with a github.com/user directory where they
 develop their software?

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



-- 
Tim Chevalier * http://catamorphism.org/ * Often in error, never in doubt
If you are silent about your pain, they'll kill you and say you enjoyed it.
-- Zora Neale Hurston
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] Practical usage of rustpkg

2013-12-03 Thread SiegeLord
So I've been thinking for awhile about how one would actually use 
rustpkg. Let me first outline my use case. I have a library and a 
program that uses that library, both of which I host on GitHub. One of 
the features of the rustpkg system is that I should be able to write 
this to refer to the library in my program:


extern mod lib = package_id;

Unfortunately, there is no obvious thing to put into the 'package_id' 
slot. There are two options:


First, I could use github.com/SiegeLord/library as my package_id. This 
is problematic, as it would require one of these sub-optimal courses of 
action:


- Stick the source of the library into workspace/src/library where I 
would actually develop and then use a duplicate package in the 
workspace/src/github.com/SiegeLord/library that would be created by 
rustpkg (the program is located in workspace/src/program). Somehow this 
duplicate package will be synced to the actual package: either through 
pushing to GitHub and then pulling somehow via rustpkg (this is less 
than ideal, as I may want to test WIP changes without committing them 
elsewhere/I may have no internet connection e.g. when traveling), or 
some manual, local git operation.


- Stick the source of the library into 
workspace/src/github.com/SiegeLord/library and develop the library 
there. There is no duplication, but it really seems bizarre to me to 
locate a project in a directory named like that. Also, I'd be a bit 
paranoid about rustpkg not realizing that I never want to communicate 
with GitHub and having it accidentally overwriting my local changes.


The second option is to use library as the package id. This allows me 
to locate my library in a logical location (workspace/src/library), but 
it prevents other users of my program from building it automatically. 
Essentially what they'll have to do is to manually check out the library 
repository inside their workspaces so as to create the 
workspace/src/library directory on their system: the `extern mod` syntax 
will not work otherwise.


I don't think any of these options are ideal. I don't want to suggest 
solutions to these issues because I'm not sure how things are supposed 
to be used/what the planned design is. Does anybody use rustpkg 
seriously today? Is everybody making workspaces with a github.com/user 
directory where they develop their software?


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