Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#48545 closed update (fixed)

update: ansible 1.9.1 to git devel latest (trivial)

Reported by: adfernandes (Andrew Fernandes) Owned by: blair (Blair Zajac)
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch Cc: steenzout (Pedro Salgado)
Port: ansible

Description

if you okay it, I'll commit it

Attachments (1)

Portfile.patch (2.0 KB) - added by adfernandes (Andrew Fernandes) 5 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 5 years ago by mf2k (Frank Schima)

Cc: pedro.salgado@… added
Keywords: haspatch added; update removed
Owner: changed from macports-tickets@… to blair@…
Type: defectupdate
Version: 2.3.3

Don't forget to Cc the maintainers so they know to review it.

comment:2 Changed 5 years ago by adfernandes (Andrew Fernandes)

Ansible needs all the submodules to be checked out when you build.

The sample Portfile included in the anisble repo does not include the submodules, so the "ansible official" Portfile is broken. See https://github.com/ansible/ansible/issues/11199.

Patch is updated.

Comments very welcome.

Last edited 5 years ago by adfernandes (Andrew Fernandes) (previous) (diff)

comment:3 Changed 5 years ago by adfernandes (Andrew Fernandes)

Summary: update: ansible 1.9.1 to 1.9.2 (trivial)update: ansible 1.9.1 to git devel latest (trivial)

Changed 5 years ago by adfernandes (Andrew Fernandes)

Attachment: Portfile.patch added

comment:4 Changed 5 years ago by adfernandes (Andrew Fernandes)

Using the latest git devel branch rather than "stable released" since the 1.9.X tag of anisible is very, very old.

The devs simply, via their comments and on the github repo readme, imply that running from devel is the preferred way of doing it.

comment:5 Changed 5 years ago by adfernandes (Andrew Fernandes)

Cc: blair@… added

comment:6 Changed 5 years ago by mf2k (Frank Schima)

Cc: blair@… removed

I have already assigned the ticket to blair. Cc'ing is redundant at this point.

comment:7 Changed 5 years ago by blair (Blair Zajac)

So you're proposing to tie off on a newer sha? What makes that sha special? My current thoughts, at the moment, are that the 'ansible' port should be on a stable, fixed release and there can be an 'ansible-devel' port that can move faster. I do want to be able to count on a stable release for my work, so I'm not wondering what has broken on a random sha. So currently, I'm not going to apply this patch. I'm not wed to this line of thought, but hearing for the recommended installation approach from upstream, e.g. links, would be welcome. If we come to an agreement, can add you as a maintainer.

BTW, I did upgrade to 1.9.2 in r139387.

comment:8 Changed 5 years ago by steenzout (Pedro Salgado)

I don't think you need a ansible-devel. if you really want to use a different version you can pip install ansible or if you really want the very latest version, pip directly from github. I think this is more of a problem how the Ansible team is tagging releases and forcing everyone to always use the very earliest version (which may break other stuff). e.g, Due to issue#10891, playbooks that will ask for sudo password will not run on 1.9.1 on OSX just as it is.

maybe we can have ports for ansible19x and ansible18x? what does the macports team recommend? for me, I would just tag the latest release. I use virtualenv to overcome these issues on production playbooks + CI environments to double check which ansible release they run appropriately (or, at the limit, force them to run under one version alone).

sorry for the long answer.

Last edited 5 years ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:9 Changed 5 years ago by adfernandes (Andrew Fernandes)

I mostly agree with you, blair, about basing on a "stable" version of ansible. Unfortunately, there appears to be no such thing. I've had some conversations with ansible devs (both on github trackers and in private email) and they seem to be of the "just download off of the devel branch" attitude.

When I asked why they have "stable" tarballs, or why they don't just tag tested revisions, they get very... well, defensive, I think is the best way to put it.

Anyway. I picked that SHA tree because that's the lastest I saw, and critical fixes get monkey-patched in willy-nilly if you look at the github repo.

Many of their features (and documentation) work only with the "2.0" version of ansible, which is what the "1.9.2+" latest revisions really are. (Note that the current head is about 2000 commits ahead!)

So, I'm not tied to any particular version... I just want it to work. The problem is the ansible "tag and release" model, not macports. We just have to figure out how to deal with it.

comment:10 Changed 5 years ago by adfernandes (Andrew Fernandes)

Oh, almost forgot - make sure to add the "submodule init" part of the post-fetch otherwise ansible looks like it works, but you get all sorts of hard-to-trace errors; see comment:2 above.

Last edited 5 years ago by adfernandes (Andrew Fernandes) (previous) (diff)

comment:11 Changed 5 years ago by blair (Blair Zajac)

So to confirm, you're saying the 1.9.2 release is broken and has critical bugs in it? The tarball isn't self-contained?

It sounds like we should have ansible1.9 and an ansible2.0 ports, and possibly anisble1.8 if anybody needs it. The ansible port can be a replaced_by ansible1.9 for 1 year and then deleted, see https://svn.macports.org/repository/macports/trunk/dports/lang/scala210/Portfile for a sample Portfile. I do want the ability to have MacPorts lock off on a particular stable line of development, so users are not having to all of a sudden (on our schedule and not theirs) update scripts.

comment:12 in reply to:  11 Changed 5 years ago by adfernandes (Andrew Fernandes)

Replying to blair@…:

So to confirm, you're saying the 1.9.2 release is broken and has critical bugs in it? The tarball isn't self-contained?

No, the tarball is not self-contained. You cannot install a working ansible from the tarball. Period.

In functionality, it is unclear if the 1.9.2 release is broken or not. Following the github bugtracker, some commit messages indicate that critial bugs are being patched, but they only have a "devel" branch. Tagging is unclear. The devs constantly refer to a "v2.0" release, which they then say "is really the current v1.9, just a few commit ahead."

My suggestion is the following:

  • base the port off of the v1.9.2-1 github tag.
  • use fetch.type git to pull the repo
  • make sure you initialize the submodules (my patch, lines 44-46)
  • make sure to change the reinplace filter (line 50)

I think ansible is keeping the 1.9.x branch maintained; they just tagged a v1.9.3-0.1.rc1 four days ago. Judging by past commit logs, the final 1.9.3 won't be out for a month or more. So, it looks like 1.9.2 is maintained...

comment:13 Changed 5 years ago by blair (Blair Zajac)

I've installed from a tarball quite a few times, so what doesn't work.

In any case, you have more interest in the port then I do, so add yourself as a maintainer and feel free to make any changes you feel, keeping the ability to somewhat lock off on a line of development, e.g. 1.8.x, 1.9.x 2.0.x.

comment:14 in reply to:  13 Changed 5 years ago by adfernandes (Andrew Fernandes)

I've installed from a tarball quite a few times, so what doesn't work.

Heh. That's what I thought, until I hit the bug in comment:2. I'm not even sure what triggered it, because I used the port for a week with no issues, then I did something in my Vagrantfiles that made it go nuts.

Okay. I'll fix on the v1.9.2-1 tag, test, and commit. Will get to it sometime this week, if I can.

(Whups! Meant comment:2, not comment:8 in comment:10. Sigh. Sorry for any confusion. Editing now.)

comment:15 Changed 5 years ago by adfernandes (Andrew Fernandes)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.