Aldriana / ShadowCraft-Engine

Calculations backend for ShadowCraft, a WoW theorycraft project.
GNU Lesser General Public License v3.0
37 stars 22 forks source link

Packaging #70

Closed julienp closed 13 years ago

julienp commented 13 years ago

Currently the project root is not a proper python package, it could be useful if we made a package that could be installed with distribute and pip/easy_install.

We'd have to move the packages into a base package called shadowcraft

ShadowCraft-Engine (git root dir)
    - scripts
        - assassination.py
        - combat.py
        - subtlety.py
    - shadowcraft
        - calcs
        - core
        - objects
    - tests
        ...
    - license.txt
    - README
    - setup.py
    - style.txt

Imports would have to be changed to import from the new shadowcraft base package, from shadowcraft.objects import buffs etc.

I did the changes to the package structure and imports in a test branch and all tests pass. There could be some merge issues if someone got changes that are not in the current master branch, so it would be best to get all those in before doing it.

So the change wouldn't be difficult, but I'm not entirely sure we need it. I don't have a direct use for it, Shadowcraft-UI might find it useful, but possibly it's unneeded. If it turns out to be needed sometime in the future, getting it done early is probably good. What are people's thoughts on making it a real (and installable) python package?

Aldriana commented 13 years ago

Having this be installable seems like a nice feature, and I don't see that it really hurts anything to do it. That said, finding a time when people don't have outstanding changes is likely to be a bit tricky, as there's quite a few people doing quite a lot of work on this.

dazer commented 13 years ago

Just checking in: my ongoing stuff (other ep values) wouldn't have any trouble with such a change.

julienp commented 13 years ago

Regarding i18n, is core/files.in a generated file or is it edited manually?

Edit: the .po files in core/local have paths in them, I assume these are generated. Is there a way to adjust them without having to re-enter all the translations? I can manually adjust them, it's just pasting in shadowcraft/ a bunch, but I don't know if it will break the next time translations are updated. Are those paths even used for translation or are they only comments?

dazer commented 13 years ago

Files.in is edited manually whenever a new pot template is needed. You don't need to worry about anything i18n related: The only files that gettext uses are .mo files and those don't need line references; po and pot files are not used at all by gettext: they are there so that new translators have a file to start with. The line/file references are updated automatically using the gnu package utilities xgettext/msginit and its only use is for xgettext to update easily the pot template which is something that I'll be doing periodically.

edit: in theory i18n.py should find its path to the mo files on its own, but if something breaks I take responsibility to make it work again.

Aldriana commented 13 years ago

Some packaging improvements were made; are there more that we still want to have happen, or can I close this out?

julienp commented 13 years ago

From what I remember there's some issues with installing localization files, but that's something we can review if we ever add actual translations. Should be fine for now.