Page MenuHomePhorge

Phorge
PublicGeneral discussions about Phorge. For long and complex questions, you may want to use Ponder.

Looking at the PHID, that's a NuanceSource. As per the error message, that doesn't implement PhabricatorDestructibleInterface - which is required for destroying objects using bin/remove destroy.

Apr 7th, 2025

@avivey Could you please destroy F3363410?

Could someone in O1 please rubberstamp trivial https://we.phorge.it/differential/?ids=25941,25867,25937 ? Thanks in advance!

Apr 8th, 2025

Thanks! Would someone be willing to review D25873? It's the only regression listed in the Changelog (plus has an ok from the original author). Thanks!

Apr 15th, 2025

Could someone from Blessed Committers update Next Up with rP9c388c65f628 (D25900)? It needs to be put under the section Database Upgrades, similar to 2024 week 35.

Apr 16th, 2025

Uh thanks. Done

Just out of curiosity: is Phorge still using ES5 ? I added D25966 and got some unit test errors because of some ES6 syntax

I already tried the existing one: it doesn't work with cached objects (e.g. when you press F5) as the code block is on a cached wiki page. The behavior metadata isn't initialized anymore in the cached page.

That is true... but you can still use this behavior. I had the same problem but have solved it with setting the data with JS. Here my code - of course, you have to adapt this:

/**
 * @provides copy-network-path
 */

JX.onload(function()
{
    // Remarkup is cached and can't hold metadata
    JX.Stratcom.listen(
        'mousedown',
        ['network-path'],
        function(evt)
        {
            const node = evt.getNode('network-path');
            const text = node.parentNode.getAttribute('title');
            JX.Stratcom.addData(node, {
                text: text,
                successMessage: 'Path copied.',
                errorMessage: 'Copy of path failed.'
            })
        }
    );
});

mousedown because it will be fired before the click of the copy behavior.

This way your behavior will be slim because you use already codes core components.

(You may summarize these recent comments and add them to D25966 so they don't get lost)

hey there. Are there any admins online?

I can't remove my own repo https://we.phorge.it/diffusion/4

it says I am not admin enough for this

Phorge sysops: can we re-generate Diviner? ./bin/diviner generate So to see the new Javelin document

(Maybe nice to add that in the release lifecycle script - if any)

cc @avivey

alternatively can we change the title and tags for this project? I am no longer planning on using rust for this project. Instead of Rust Conduit Client can we name it Gopher Burrow or something.
I am not sure what is easier: renaming or recreating

I think simply changing details in https://we.phorge.it/diffusion/4/manage/ should be sufficient

Apr 17th, 2025

@ton - done. ping me if you want to to change the description more.

Thanks @avivey , I have realized that golang will be a better for supplementary tooling for phorge

I am currently working on several things: bugzilla to maniphest migration tool, phorge API library in Go, and a long-term project - arc equivalent in go.

The first will (hopefully) be needed by FreeBSD, the latter 2 I think will benefit everyone. The need to install on the client side will go away with a self-contained binary (+ better windows/macos support wouldn't hurt)

@avivey, I get * * * PUSH REJECTED BY EVIL DRAGON BUREAUCRATS * * * message when I try to force push or delete an old branch. Can you grant me those powers for R4 repo?

Apr 18th, 2025

@ton that's the "Dangerous Changes" flag (not an access policy) - I've allowed it now, you (and anybody else) should be able to burn everything. LMK if/when to flip it again.

Apr 19th, 2025

it worked, thanks

Apr 20th, 2025

What version of PHP is currently best with Phorge? I remember a while back there were compatibility issues with latest 8.2+ versions... Installation documentation doesn't mention any of this.. so I assume 8.4 works fine?

If you use master then I guess 8.4 is fine.

WMGMC Phorge currently uses PHP 8.4.6 and branches from rP12991c0d377a28849377499d5b5a269a466e9ef5.

Thanks to @aklapper for their great work on PHP compatibility fixes!

@ton: Re "bugzilla to maniphest migration tool" - we did that 11 years ago and wrote custom code and I guess we were/are not the only ones. I hope you don't write it from scratch?

connorgurney joined the room.

Thanks to @avivey for approving my request to join! Finally got around to replacing a heavily-customised version of Phabricator in my homelab with Phorge and looking forward to contributing.

@aklapper I did write a bunch of code from scratch. I am writing it in go as a way to dogfood the conduit API library I am writing in go

the long term goal is to perhaps have an arcanist alternative. The need to install PHP is a major drawback to a lot of people. A statically linked self-contained binary will be a a good solution for this

Bugzilla API is pretty simple, scraping it is quite easy. I am currently working on uploading it all into Maniphest and preserving all FreeBSD specific labels and stuff

Out of interest, @ton, do you think there's anywhere that the Conduit API falls short or could be improved?

perhaps. I am picking up this project after 2 year break. My memory is a bit vague at the moment

But I will refresh it soon, so stay tuned 😛

@connorgurney are you working on Conduit ?

Thanks! Appreciate it. Have just joined the project, but have found a few shortcomings that I'd personally like to improve, so wondering where is most helpful to start.

If counduit had some way of self-describing the API... like a json schema or something

It would greatly help me to generate the client side of the API

and keep it up to date

Ah, good shout. Something like an OpenAPI specification?

The challenge as I remember it is that conduit exposes application's APIs, and Apps can be enabled/disabled in settings. If it is disabled conduit won't show it.

I presume that we could generate something on the fly and cache it then flush the cache when apps are enabled or disabled.

perhaps, at the moment I am focused on the core apps - maniphest, differential, diffusion and these seem to be enabled

(on FreeBSD instance...which is still Phabircator and I need to convince folks to upgrade)

I think you're probably right in suggesting that we do it automatically, as maintaining it manually is likely to be a PITA, and the data is clearly already available, as the Conduit pages list every endpoint.

Any chance of being added to Trusted Contributors, please? Would like to create some tasks in Manifest.

I am not sure I can do it. You probably need to talk to the bosses.

Ah, sorry, wasn't asking directly - was just hoping someone would be hanging around here, but will try IRC too.

@avivey it does look like I have the power to add folks to Trusted Contributors group, at least the button is not grayed out for me. But I am not sure I am supposed to

Should be added!

Thanks, both - much appreciated!

Apr 21st, 2025

https://we.phorge.it/api/conduit.query I think I found an API description in json

@ton - yes, Trusted Contributors is a "self-governing group" - basically, any member can add others as members.
The bar for acceptance to this group is basically "not spam".

Looks like you beat me to it, @ton! Cheers.

Apr 22nd, 2025

not to start a flame war, but mysql vs mariadb - which is better for phorge?

I don't expect a real difference. But if there was, then "better" would need clear criteria anyway

I personally stick to MySQL Community Edition as that's what it was originally built for, but MariaDB is meant to have feature parity, so I see no reason not to use it.

You could also use something else entirely, such as AWS Aurora for MySQL, which also seems to work fine.

Been using MariaDB on my personal instance and for the one we run at my work just fine for years now, as some real-world proof of the theory.

On an unrelated topic, has anyone hosted a monorepo in Phorge at all, and, if so, what challenges have you faced, if any?

@keithzg You might be interested in helping to implement T15045?

Apr 23rd, 2025

I don't get the "Cat Fact" «The first cats evolved in swamps about 65 years ago.» that is probably the only Cat Fact that makes no sense to me lol - https://we.phorge.it/source/phorge/browse/master/src/applications/search/menuitem/PhabricatorMotivatorProfileMenuItem.php

Also totally against the «The first cats evolved on the savannah about 8,000 years ago.»

thatsthejoke.gif

nobody said these facts are correct. they're just facts.

Admins: please approve this kind user I know: https://we.phorge.it/people/manage/1416/ Thanks :3 :3

Also maybe it's necessary to mention that the IRC chan is has a name and it's called Phorge from the msg that is shown here https://we.phorge.it/auth/start/?next=%2F

I've added a link from that message to https://we.phorge.it/w/irc/ :)

(and checked that it's available when logged out)

oh, wait, it's probably not visible to users that are pending approval

A_smart_kitten joined the room.

at the risk of sounding cheeky, can i ask if someone would be willing to add me to Trusted Contributors? i occasionally feel like upstreaming tasks from https://phabricator.wikimedia.org/project/view/6/ and that would allow me to do it :p

Yup, added

Apr 24th, 2025

Can someone provide me with some guidance/docs on how to read the task graph, please? I'm sure that I'm missing something obvious, but my ADHD brain is losing it! Thanks.

Do you have a specific task graph?
The general meaning is: children task (down) are sub-tasks, blocking your current task

Let's use this one for importing Phorge into my Terraform state as an example. Can you please explain why the lines branch out as they do?

Apr 25th, 2025
danielyepezgarces joined the room.

As I already tried to say, you are visiting T1, so your point of view is that. To complete it, you have children sub-tasks (pointing down from T1).
You can easily see that you should first complete T140 to be able to close T139, and that you should then complete T139 to complete T1, etc

That frame of thinking actually helps me to make sense of it, so thank you very much! Appreciate it as ever, Bozz.