Opened 8 years ago

Last modified 5 years ago

#51158 new submission

port submission: arcanist

Reported by: RJVB (René Bertin) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: mkae (Marko Käning)
Port: arcanist

Description

Developers who are likely to have to deal with the Phabricator collaborative system (used e.g. for code reviews) might be interested in this port that installs the associated arcanist (arc) command-line utility.

Attachments (5)

Portfile (2.2 KB) - added by RJVB (René Bertin) 8 years ago.
Portfile.2 (3.1 KB) - added by RJVB (René Bertin) 7 years ago.
git-kill-history (379 bytes) - added by RJVB (René Bertin) 7 years ago.
git-gc-all-ferocious (312 bytes) - added by RJVB (René Bertin) 7 years ago.
git-eradicate (1.1 KB) - added by RJVB (René Bertin) 7 years ago.

Download all attachments as: .zip

Change History (10)

Changed 8 years ago by RJVB (René Bertin)

Attachment: Portfile added

comment:1 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

There are several things I don't understand about this Portfile.

  • Why is libphutil a subport of arcanist? Why are these not separate ports? They don't appear to have much Portfile code in common.
  • Why is the php portgroup used? The portgroup is intended for ports of PHP modules. Are either of these ports PHP modules? Based on the descriptions, I'm assuming they aren't, and that you're merely trying to add a dependency on the latest version of PHP. If so, what you should do instead is to declare variants for each supported version of PHP.
  • In the destroot phase, you don't need to create the libexec directory; MacPorts does so for you. And you should not use system to call cp -pR; instead, use the copy procedure.

comment:2 in reply to:  1 Changed 8 years ago by RJVB (René Bertin)

  • Why is libphutil a subport of arcanist? Why are these not separate ports? They don't appear to have much Portfile code in common.

No, but there also isn't much Portfile code that is *not* in common ;) (esp. if you ignore the checksum lines). Until proof of the contrary, libphutil is something used just by arcanist. Putting both ports in a single portfile makes maintenance easier even if they there isn't much shared code. They'll typically be updated at the same time, for instance.

  • Why is the php portgroup used? The portgroup is intended for ports of PHP modules. Are either of these ports PHP modules? Based on the descriptions, I'm assuming they aren't, and that you're merely trying to add a dependency on the latest version of PHP. If so, what you should do instead is to declare variants for each supported version of PHP.

In fact I was hoping to do something as with perl, just declare on whatever is the default version. In reality I could have skipped the whole php dependency because the code runs fine with the system php (that's documented in the official install instructions).

  • And you should not use system to call cp -pR; instead, use the copy procedure.

Does that preserve file time stamps and symlinks? If not I could use file move.

comment:3 Changed 8 years ago by mkae (Marko Käning)

Cc: mk@… added

Cc Me!

I'll happily test an updated version of this port.

I had installed this quite a while ago on a KDE builder for OSX and it worked fine. Good to know that soon there will be this port available instead.

Last edited 8 years ago by mkae (Marko Käning) (previous) (diff)

Changed 7 years ago by RJVB (René Bertin)

Attachment: Portfile.2 added

Changed 7 years ago by RJVB (René Bertin)

Attachment: git-kill-history added

Changed 7 years ago by RJVB (René Bertin)

Attachment: git-gc-all-ferocious added

Changed 7 years ago by RJVB (René Bertin)

Attachment: git-eradicate added

comment:4 Changed 7 years ago by RJVB (René Bertin)

An update to this port.

Certain arcanist features require the installed code to have access to its own git history. To comply with that I now fetch using git rather than tarballs, and then discard all history before the last commit as far as git will allow. The final operation in that sequence is making a --depth 1 clone as the actual destroot step.

comment:5 Changed 5 years ago by pftbest (Vadzim Dambrouski)

Installed this port today, everything worked as expected, thank you. The only minor issue I had was with xargs in one of git scripts (it doesn't support --no-run-if-empty flag), but this error didn't fail the build, so not a big deal.

Note: See TracTickets for help on using tickets.