Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 581118 - app-admin/yadm - yet another dotfile manager
Summary: app-admin/yadm - yet another dotfile manager
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Espen H
URL: https://github.com/TheLocehiliosan/yadm
Whiteboard:
Keywords:
Depends on: 581392
Blocks:
  Show dependency tree
 
Reported: 2016-04-25 06:12 UTC by Espen H
Modified: 2016-04-30 14:38 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
yadm-1.04.ebuild (yadm-1.04.ebuild,684 bytes, text/plain)
2016-04-25 06:12 UTC, Espen H
Details
yadm-1.04.ebuild-2 (yadm-1.04.ebuild,599 bytes, text/plain)
2016-04-26 16:47 UTC, Espen H
Details
yadm-1.04.ebuild-3 (yadm-1.04.ebuild,753 bytes, text/plain)
2016-04-29 20:34 UTC, Espen H
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Espen H 2016-04-25 06:12:55 UTC
Created attachment 431866 [details]
yadm-1.04.ebuild

Hi!

Please find attached yadm-1.04.ebuild for being added into the gentoo portage tree.

yadm is a dotfile manager that handles the hassle of synchronizing the dotfiles in your home folder across different workstations. It has a philosophy using git and getting out of git's way to ensure it does what it does best. What sets it apart is that it supports encryption, which enables you to add files like mutt configuration with passwords and host it publicly. It also enables you to add suffixes to your files like ##Linux.hostname, and yadm will automatically symlink the file if you are on that hostname.

I suggest app-admin/yadm. This ebuild is a bash script with some documentation, and thus only depends on bash, gpg and git.
Comment 1 Tomáš Mózes 2016-04-25 20:10:32 UTC
Hello!
Would you like to proxy maintain this package?

A few notes:
- generally you cannot push a new package directly to stable - please mark x86 and amd64 testing
- I believe you can omit the src_compile() phase if you do nothing just unpack and copy scripts
- the DOCS array contains the readme, I think you can omit the doc IUSE and just copy those 4 little files
- test with eapi 6 since it's a new package
- the description should not contain the name itself
- be sure to check the ebuild with repoman (for example indent the deps)

Good luck :)
Comment 2 Espen H 2016-04-26 16:47:26 UTC
Created attachment 432156 [details]
yadm-1.04.ebuild-2

Hi Tomáš,

Thank you for your warm, welcoming attitude. It is much appreciated.

Yes, I can maintain this package. I have talked with the author about it, and he is fine with the situation.

Also: I have addressed your concerns, and uploaded a new file for you to review.
Comment 3 Sam Jorna (wraeth) gentoo-dev 2016-04-27 06:09:58 UTC
Hi!

Firstly, thank you for your contribution and offer to maintain this!

There are a couple of further issues with the ebuild that will need to be addressed before it can be added.

Firstly, KEYWORDS [0] for new packages should only list architectures that you have actually tested on (regardless of upstream's supported platforms). Additional keywords can be added later using a KEYWORDREQ bug.

The only other comment about the ebuild itself I have is that the `dodoc` statement could be replaced with `einstalldocs` [1] (which is what is used by the default EAPI6 src_install() function [2]), but the same result is achieved so either way is fine. `einstalldocs` uses the ${DOCS} array by default, so doesn't need any additional arguments.

Lastly, my testing of this shows it failing during tests. You should be able to reproduce this by running the emerge with FEATURES=test set like so:

> FEATURES=test emerge -1 =app-admin/yadm-1.04
Or by using the `ebuild` command:

> ebuild yadm-1.04.ebuild clean test

The test failures will need to be addressed (preferrably made to successfully complete, but if that can't be done, then RESTRICT="test" [3] may be needed) will need to be addressed, along with the KEYWORDS issue, before this can be added.

If you have and questions, you can ask here, by sending a mail to the Proxy Maintainers project [4], or by asking in the #gentoo-proxy-maint or #gentoo-dev-help channels on the Freenode IRC network.

Good work so far, and again: thanks!

[0] https://devmanual.gentoo.org/keywording/#keywording-new-packages
[1] https://projects.gentoo.org/pms/6/pms.html#x1-14300011.3.3.14
[2] https://projects.gentoo.org/pms/6/pms.html#x1-1030009.1.9
[3] https://devmanual.gentoo.org/ebuild-writing/variables/#ebuild-defined-variables
[4] https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers
Comment 4 Tomáš Mózes 2016-04-27 07:18:12 UTC
I looked a bit on the package, some more ideas:
- the DEPEND variable is for build deps (programs needed to build the package), however git/gnupg is a running dep (you don't need git/gnupg to build yadm, but you need them to run yadm itself)

Yadm also includes tests, but for them to work we need bats. I checked the repo (https://github.com/sstephenson/bats), it doesn't look scary to package. I would suggest creating another bug report for bats and make this bug depend on that. 

If you need help, feel free to poke :)
Comment 5 Espen H 2016-04-29 20:34:30 UTC
Created attachment 432598 [details]
yadm-1.04.ebuild-3

Hi again,

I've upladed another ebuild.

However, as Tomáš suggested, this bug now depends on dev-util/bats. Tests should pass, but not before dev-util/bats is available in portage.

I had to blacklist a test file to get the suite to pass. This is because it was an interactive test involving pinentry which failed.
Comment 6 Sam Jorna (wraeth) gentoo-dev 2016-04-30 14:36:05 UTC
yadm
Comment 7 Sam Jorna (wraeth) gentoo-dev 2016-04-30 14:38:37 UTC
Thanks for the contribution!

Apologies for the spurious comment before - used the wrong argument.

There were a couple of minor changes to the ebuild that I made as I committed:

 - Slightly altered DEPEND to make it a little more readable.
 - Added missing "|| die" to the bats call in src_test().
 - Locally tested with x86, so added KEYWORD for ~x86

Otherwise, this is a good job - thanks!


commit abf69133b5bedcbeafa07414c8a9453e01aed67f
Author: Sam Jorna <wraeth@gentoo.org>
Date:   Sat Apr 30 23:53:20 2016 +1000

    app-admin/yadm: new package
    
    yadm is a dotfile manager that handles the hassle of synchronizing the
    dotfiles in your home folder across different workstations. It has a
    philosophy using git and getting out of git's way to ensure it does what
    it does best.
    
    Maintainer assigned to Espen H per request under Proxy Maintainers.
    
    Gentoo-bug: 581118
    Package-Manager: portage-2.2.28