Arcanist internally generates a diff that includes a similar suggested parameter to account for the entire file contents being present in the resulting diff.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Jun 2 2023
May 30 2023
May 28 2023
May 22 2023
There is some support for this today, I have worked with dependent revisions in the past. There are some gaps but it’s possible today. I’ll look through my notes but I think this requires a fair amount of additional state tracking as commits change on local machines. I haven’t fully thought through it all but I think an ideal solution would be something like mercurial’s “evolve”, but that is likely a ton of work.
In T15364#8952, @avivey wrote:"tooling for chains of diffs" might need its own topic, with a design of the what the whole thing should look like in an ideal world, and how to get to it.
Even if not all of the stuff fits nicely into Phorge, there's probably a lot that can work, and some conduit methods can be added to implement the rest.
Breaking this out from the discussion at T15364: arc land complaints summary by FreeBSD community
May 15 2023
"tooling for chains of diffs" might need its own topic, with a design of the what the whole thing should look like in an ideal world, and how to get to it.
Even if not all of the stuff fits nicely into Phorge, there's probably a lot that can work, and some conduit methods can be added to implement the rest.
Chaining Diffs is something that we would like to use more often, and it is definitely not used enough today. FreeBSD is a large codebase and making any change that is bigger than trivial often involves touching multiple parts of the system, the most difficult kind of change is architectural changes. We are limited by our tooling to a certain degree:
- Keeping everything in one Diff makes it very difficult to review as well as reach consensus, as there are often multiple responsible parties involved. It also violates the ethos of Phab/Phorge of having small atomic changes.
- Breaking changes down in smaller chunks has lots of downsides too - it is very hard to track and changes often get lost in depths of Differential.
mmm... I've never really worked where many changes are made of lots of dependent revisions - it's possible I've never even seen a chain of 3 revisions in the same repo. So I'm not sure about workflows for this kind of scenarios.
Yea, today I have about 50 lines of shell scripting that gets the different bits of data from the condon API point and then bashes them into a nearly acceptable commit message....
Ok, so here's my thoughts on moving this forward:
May 9 2023
May 8 2023
FWIW I think the test plan is configurable (that requirement can be disabled in phabricator's config server side which should remove it from commit messages in arc)
What are the reasons for doing commit message rendering on the server side?
In an ideal world the solution should be as simple as having a template somewhere in {{repo_root}}/.arcanist/commit_template.j2 that arcanist injects values in and renders.
May 7 2023
We can probably come up with a way to allow an extension to customize the "render template" implementation without forking (e.g., just add a hook in differential.getcommitmessage), but it would have to be very carful about the whole form-thing.
Maybe just adding an "for landing" flag in differential.getcommitmessage (or adding a different method) would solve this problem...
In T15364#8281, @ton wrote:The template is actually generated server side, not in arcanist, so it just a matter of getting the BSD Phorge server to have the right opinions.
Some of the sections can be configured alreadyPlease point me in the right place in the code where I can find the template
The template is actually generated server side, not in arcanist, so it just a matter of getting the BSD Phorge server to have the right opinions.
Some of the sections can be configured already
re @avivey : arc land --hold sort of works but look at the ergonomics:
Alternatively - there's also arc land --hold, which does almost everything except for the git push, which would allow the user to update the commit message. Have anyone tried that?
thanks @ton - these look very actionable:
In T15249#8232, @ton wrote:@avivey today I tried arc patch to download a bunch of Diffs.
Some diffs check out OK. Lots of Diffs fail to be fetched, I get a very useless error message:
Exception strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated (Run with `--trace` for a full exception trace.)
May 6 2023
May 2 2023
Apr 28 2023
@avivey many developers do not use arcanist at all for reasons outlined in https://we.phorge.it/T15096#6224 - many do not wish to install php, some find arc interface confusing...
@ton: Why are "they" not using arc patch to download the patch?
Apr 25 2023
Apr 21 2023
This?
I wanted to set up some docker/compose file or possibly a VM but didn’t get far since neither of those are great solutions on windows, primarily for getting local code into the container/vm. My goal would be to get a quick setup time with a rapid dev/test cycle. For me to make progress I’ll likely have to switch to mac or Linux.
Apr 20 2023
In T15249#6474, @speck wrote:Getting set up with a development environment (including database~) along with configuring the local instance and populating it with sample data is extremely daunting and is frankly why I haven’t done much contributing. I lost my dev environment a few years ago and have tried only once to get set back up, spent a few hours and never came back to it. It doesn’t help that arcanist’s self linter isn’t usable on windows systems.
I suspect the barrier is more the dev environment and less PHP or the codebase.
Apr 19 2023
Getting set up with a development environment (including database~) along with configuring the local instance and populating it with sample data is extremely daunting and is frankly why I haven’t done much contributing. I lost my dev environment a few years ago and have tried only once to get set back up, spent a few hours and never came back to it. It doesn’t help that arcanist’s self linter isn’t usable on windows systems.
Apr 18 2023
In T15249#6391, @ton wrote:Ok, after spending a weekend looking at PHP I can say that I overestimated my level of enthusiasm.
I might be willing to take a stab at this but not sure when I'll have the time.
Phabricator's codebase is mostly high quality and fairly easy to jump into but I probably wouldn't recommend it for someone new to PHP :D
Apr 17 2023
It is hard to say objectively, as I am new to PHP and to this codebase in particular. In total I spent probably 4-6 hours over the weekend, but someone with more experience could've done a lot more in that time. I was reading about PHP, setting up my dev environment, reading the code, navigating class hierarchy, trying to understand PHP idioms, etc. In the end of the day I realized that learning yet another language (and TBH not the most sexy one) in my free time to hack on a gigantic legacy codebase is not something that I want to do.
Ihih maybe we can have a "number of hours invested in this" as warning. Ton: how much?
I admit that I would be TOTALLY impressed if ton would be able to do something like THIS as first contribution. Fortunally this fail just means you are a human being.
Ok, after spending a weekend looking at PHP I can say that I overestimated my level of enthusiasm. This is the kind of work that I'd like to get paid for and not spend my free time on.
Sorry @avivey, but you can cross me off the list of potential code contributors.
Apr 16 2023
Apr 14 2023
@valerio.bozzolan yes, https://gitpull.it/D110 demonstrates the point I was trying to communicate. No buttons available to expand the context.
In T15250#6240, @valerio.bozzolan wrote:So if I understand correctly:
- most FreeBSD users share a Diff but is usually just a git patch
- → first problem: Phorge was intended to use arc diff for best experience, so that to create a git patch, create the Diff, and assign that Diff to the right Repository, run Lint, and run Unit tests
- → but sharing a raw git patch is really OK and reasonable, I understand that Arcanist is a pain for new users
, but:
In T15249#6218, @ton wrote:I don't mind if someone points me at the right place in code so I can try my luck with writing PHP.
By the way, it seems to me that the reporter is saying that these buttons are sometime not available (when the user does not use Arcanist):
As an alternative to using the "upload raw diff" option, see also https://secure.phabricator.com/T5000, and in specific the "magic ref" stuff in T15096#2329 and https://secure.phabricator.com/D9599.
Feel free to say to me that I probably didn't understand shit as usual :D
So if I understand correctly:
what's frustrating here is the fact that Phorge has the source code, so it should know the context.
But by not providing the context itself, it can also not know when a Diff has diverged and can no longer be landed without (manual) intervention.
By the way it seems that - for any frontend string - your local Administrators can override a message from the Phorge/Phabricator Config page.
Hi, thanks for this interesting question.
Apr 13 2023
I don't mind if someone points me at the right place in code so I can try my luck with writing PHP.