Re: Sharing code between different projects?

Discussion in 'Python' started by Cameron Simpson, Aug 14, 2012.

  1. On 13Aug2012 17:53, andrea crotti <> wrote:
    | I am in the situation where I am working on different projects that
    | might potentially share a lot of code.
    |
    | I started to work on project A, then switched completely to project B
    | and in the transiction I copied over a lot of code with the
    | corresponding tests, and I started to modify it.
    |
    | Now it's time to work again on project A, but I don't want to copy
    | things over again.
    [...]
    | The problem is that there are functions/classes from many domains, so it
    | would not make much sense to create a real project, and the only name I
    | could give might be "utils or utilities"..
    |
    | In plus the moment the code is shared I must take care of versioning and
    | how to link different pieces together (we use perforce by the way).
    [...]

    Having just skimmed this thread, one thing I haven't quite seen suggested is
    this:

    Really do make a third "utilities" project, and treat "the project" and
    "deploy" as separate notions. So to actually run/deploy project A's code
    you'd have a short script that copied project A and the utilities project
    code into a tree and ran off that. Or even a simple process/script to
    update the copy of "utilities" in "project A"'s area.

    So you don't "share" code on an even handed basis but import the
    "utilities" library into each project as needed.

    I do this (one my own very small scale) in one of two ways:

    - as needed, copy the desired revision of utilities into the project's
    library space and do perforce's equivalent of Mercurial's addremove
    on that library tree (comment "update utilities to revision X").

    - keep a perforce work area for the utilities in your project A area,
    where your working project A can hook into it with a symlink or some
    deploy/copy procedure as suggested above.
    With this latter one you can push back into the utilities library
    from your "live" project, because you have a real checkout. So:

    projectAdir
    projectA-perforce-checkout
    utilities-perforce-checkout
    projectBdir
    projectB-perforce-checkout
    utilities-perforce-checkout

    Personally I become more and more resistent to cut/paste even for small
    things as soon as multiple people use it; you will never get to backport
    updates to even trivial code to all the copies.

    Cheers,
    --
    Cameron Simpson <>

    The mere existence of a problem is no proof of the existence of a solution.
    - Yiddish Proverb
    Cameron Simpson, Aug 14, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. andrea crotti

    Sharing code between different projects?

    andrea crotti, Aug 13, 2012, in forum: Python
    Replies:
    1
    Views:
    112
    Steven D'Aprano
    Aug 14, 2012
  2. Chris Angelico
    Replies:
    0
    Views:
    147
    Chris Angelico
    Aug 13, 2012
  3. andrea crotti
    Replies:
    2
    Views:
    129
    Miki Tebeka
    Aug 15, 2012
  4. Jean-Michel Pichavant

    Re: Sharing code between different projects?

    Jean-Michel Pichavant, Aug 14, 2012, in forum: Python
    Replies:
    0
    Views:
    131
    Jean-Michel Pichavant
    Aug 14, 2012
  5. andrea crotti
    Replies:
    0
    Views:
    123
    andrea crotti
    Aug 15, 2012
Loading...

Share This Page