Skip to main content

#Friendica needs new contributors!

I'm not used to do this, but with the large influx of new users and node admins recently coming from #Twitter, our small team is now behind the curve for handling support requests, bug reports and bring about much-needed features.

The project is built on a #PHP / #MySQL platform, but we also need people to be able to assist others just using the software to give developers some space.

If you're willing and able to help, please follow @Friendica Support and the project on Github:

Thank you!
This entry was edited (2 months ago)
Hey, I meant to ask, do you want a shoutout or is the project being overwhelmed with users at moment?

I'm trying to do posts introducing people to platforms besides Mastodon. but I don't want to direct people there if it makes situation worse?

No worries if you are overwhelmed, many other projects are too!
@Fedi.Tips Thank you for asking, we're a bit swamped at the moment, so I feel like a shoutout would be better after the upcoming release slated for December/early January. If you follow me you'll hear about it.

Friendica Support reshared this.

Already following! ๐Ÿ‘

Good luck with your work, it's a really appreciated project. ๐Ÿ™
Still learning a lot about #Friendica and the #fedivers myself. But I'll be always happy to help others, and maybe I'll be able to also contribute some day. The vision of an open, noncommercial decentralized social network is worth the effort.
@Hypolite Petovan what will be best practice to get started to support developers? Unfortunately, I not that much experience in open source community social culture. I guess participating the discussion on the git site?
@Marek Bachmann :friendica: Yes! Open source community social culture is pretty much "do what you can on your own". Even inaccurate answers are better than no answer at all. Adding your support for new features or enhancements go a long way to motivate developers, acknowledging bug reports is good etiquette, and assisting support requests by gathering as much details as possible often helps troubleshoot the issue.

Finally, correcting existing documentation or guides or writing updated ones is absolutely stellar.

Friendica Support reshared this.

@Hypolite Petovan Sadly, my PHP experience is very limited. I haven't really used it since the 00s. Am happy to help with the answering of general questions, though.
@Jonathan Lamothe (he/him) โŒ @Hypolite Petovan
Well same here. My PHP knowledge of 2003 to 2007 is completely outdated. The last thing I did was porting the application I wrote at that time from PHP5 to PHP7, but that is some 6 or 7 years back, too. Since then I didn't write a single line of code in PHP anymore.
@7homas โ™“ @Jonathan Lamothe (he/him) โŒ @ITMC GmbH As much as I appreciate you trying to motivate people to contribute code, the Friendica codebase has reached a point where it is probably out of reach of amateurs and requires the attention of professional developers like Michael, Philip and I all are.
@Hypolite Petovan
I don't want to say that again, that the code base is very complex. I rather thought that you can not only win people over for the code here, but that there are some tasks, as you have already listed.
I have to say I've looked at the code quite a few times and I haven't really gotten through what works where, how and why the way it works. Although I do daily development with my own applications based on PHP.

If I were to get involved anyway, I see the junior jobs as a starting point, as you have often described, and then ideally as an encapsulated development without any problems that can arise with the core.
Start slowly and feel your way and not from 0 to 100 and then cause chaos all over the core. Because it's always such a thing with self-developed applications where you can already understand the workflow in your head and in contrast to other developed software that still evokes many dark corners in your head.

Do you actually have a tip on how to proceed with the junior job if I still want to try the Github Tripp.
Clone the repo and then develop into its own branch, or use the develop branch and then push that back to github?

So I understand what you meant with the post, because a broken Friendica is of no use to anyone.

@Jonathan Lamothe (he/him) โŒ @ITMC GmbH
@Hypolite Petovan
I don't want to say that again, that the code base is very complex. I rather thought that you can not only win people over for the code here, but that there are some tasks, as you have already listed.
I have to say I've looked at the code quite a few times and I haven't really gotten through what works where, how and why the way it works. Although I do daily development with my own applications based on PHP.

If I were to join at some point, I see the junior jobs as a starting point, as you have often described, and then ideally as an encapsulated development without any problems that can arise with the core.
Start slowly and feel your way and not from 0 to 100 and then cause chaos all over the core. Because it's always such a thing with self-developed applications where you can already understand the workflow in your head and in contrast to other developed software that still evokes many dark corners in your head.

That's why I understand your post and I think I'll hold back there, also to motivate people here, to screw the code base is not trivial and only people who have been doing this for a long time should do it. Because a broken Friendica is of no use to anyone.

@Jonathan Lamothe (he/him) โŒ @ITMC GmbH
@7homas โ™“ @Jonathan Lamothe (he/him) โŒ @Hypolite Petovan Completely agree โ€“ but not before sometime in 2024 when I will retire. Until then I'm managing a network restructuring project of a financial institution which keeps me fully occupied. Sorry. Really would like to contribute.
@7homas โ™“ @Jonathan Lamothe (he/him) โŒ Completely agree again. But I think, in 2024 I'm so familiar with Friendica, that I'm able to write an extensive FAQ for administrators โ€“ which is still missing nowadays, AFAIK. ๐Ÿ˜‰
@ITMC GmbH Please do, documentation is crucial and we developers lack the, erm, time to reliably contribute to it!
@Hypolite Petovan

What can they do in the Friendica project? :thinking face:
My technical background is that I have been writing some web applications for the company since about 2000 with PHP (from version 3), mySQL/MariaDB and Postgres. I also use JavaScript and HTML, and since version 2.x Smarty as a template engine.
In addition, I used to write scripts with Perl and now 99.9% with Python. :smiling face with smiling eyes:

Version management used to be in Subversion and since GIT has been around, only in GIT, but since Github was taken over by Microsoft, I don't use the service anymore, I host it myself first with Gogs and then with Gitea. :thinking face:
@7homas โ™“
What can they do in the Friendica project?

  • On the GitHub project page, we have a few issues labeled as "Junior Jobs".
  • The official wiki has outdated information. @Tobias can grant write access to it.
  • Even the embarked documentation could use an overhaul, it's stored in the project files but it's mostly Markdown so no need for a technical background.
  • Support requests on GitHub are often lacking context information, asking for it ahead of a developer would be appreciated.
  • Mutual aid on the @Friendica Support forum goes a long way, it's already pretty active in German, a little less so in English.
@Hypolite Petovan
Thank you very much,

these are all interesting areas, but I see this is all going towards Github and having to set up an account there. (This is a noGo as long as Microsoft owns it).

I'll have a look at the wiki (there's also a gitea linked, but that's probably not actively used anymore or?) and especially the forum, if I can help there.

Thank you for the quick answer and the collection of information.

@Hypolite Petovan
Good idea with Gitea, I only use it for my own projects. But there are not several users working on it.
But it should bring everything what you have on Github too, except the eyes of Microsoft.
@Philipp Holzer
@Hypolite Petovan
It is a pity that this process has not gone further. Many of the large projects have turned their backs on Github for the same reasons.

Thus, it would probably also be time to set a sign here and if an own system is already available, then this is even easier.

Of course, I can not say how difficult it is to move the messages and then take over, or whether you have to make a cut, etc..
@7homas โ™“ We will make an announcement when we finally switch over. But I'm not expecting an uptick in activity when it happens. What we'll gain in privacy-conscious contributors, we'll probably lose in existing GitHub users who don't want to make the effort to create yet another account to submit their support request/bug report/new feature.
@Hypolite Petovan
Of course, if you look at it that way, that could be a fact.
It is difficult to weigh that of course, what it brings but I must say, for me and I refer now 100% to my ideas and not to the project set the data protection very high. For this reason, I also use as a messenger, for example, no Whatsapp but only Threema, Signal or Matrix.
But that's another topic and not this one.

Let's see what the future brings.
We have to distinguish between the "normal" upstream branch and the Docker images I maintain.

For the upstream branch, I don't see any impediments anymore. It's fully merged to Woodpecker as CI/CD and most of the time, it's working fine

For the Docker images, it's really hard currently. Because I use a "standard" CI/CD action script/binaries from the Docker maintainers themself and they hardly relay on Github. Currently it's not possible to automatically test the Docker images. And as "official" and "best practice" Docker image, as Friendica is part of, we need a github repository to relay on (but we could make a "mirror" repo, so that's not a real issue :) )

Friendica Support reshared this.

Gib es irgendwo ein Howto fรผr eine Entwicklungsumgebung? Reicht es einfach, lokal Friendica zu installieren und eine "Wegwerf Domain" drauf zu werfen? Oder nutzt ihr dann eine localhost Oder wie entwickelt und testet ihr lokal?
Wรผrde mir gerne mal ein paar "Junior" Issues ansehen, um damit in den Code zu kommen und dann potentiell mehr zu machen. :)
@grischa Answering in English. I have a second Friendica node at where I test all my developments. I would advise against localhost since you wouldn't be able to test any federation feature.
Sorry, didn't get the helper mention, I'll switch to Englisch, too.

Hmm.. But do you develop on that server directly or how is your coding environment? How do you debug, when it s not your local machine? Remote debugging?
@grischa I use JetBrains phpStorm as my IDE. It has a Deployment feature where it keeps an SFTP connection open with my remote server, and any file changed locally is updated on my server as well.

I am a little ashamed to admit I don't know how to use remote debugging, so I just output/log data through the code during my work, and clean up the debugging stuff before committing my work on Git.

Friendica Support reshared this.

Okay, I am using phpStorm, too. But I never saw that sync feature, maybe because I didn't use it yet, because I develop my server software local normally..
Debugging would be very helpful, but maybe it works without.
Okay, thanks for that input, I will try something. :)
(I could point a real domain to my local server maybe?)
@grischa I'm not sure how you would point a domain to a local machine but it should be possible. Let me know if you want me to test federation with your dev setup once you're done!

Friendica Support reshared this.

Thanks for that offer! ๐Ÿ˜Š
But I am running a Pleroma and a Hubzilla instance on my own, so I guess this is enough for testing whether federation works.
I'll come back to you, if it doesn't.. ๐Ÿ˜†
@Hypolite Petovan @grischa
If you are developing locally you could get a dyndns domain or something that points to your home router.
This then simply reverse proxy to your local system should actually be an idea for this.

Of course easier if you do the development via SFTP on your server and you also exclude any other bugs.

Friendica Support reshared this.

Thanks for that offer. ๐Ÿ’™
But my DNS is at INWX, they already have the DynDNS feature. Never tested it yet, but it should work as they even document how I have to configure it with my FritzBox ( ๐Ÿ™‚
@Hypolite Petovan I have setup a local #Apache and added an entry to /etc/hosts to point to my local machine. Then in a /etc/apache2/sites-available/friendica.conf I setup a virtual host on that host name and even setup a self-signed SSL certificate so I can run #Friendica locally. To be able to receive mails locally, as I have #Linux running here, I had to a bit patch Friendica to disable a regex check on the entered email address. Now when I want to locally federate with e.g. #GNUSocial I just have to repeat above steps and I remember I was able to setup "remote" follow between these two local instances. For Windows users, there is #WinAMP around for a very long time, including #Mercury mail server so you could be able to repeat it even on Windows.

Friendica Support reshared this.

@Hypolite Petovan So in the end, I don't have to sync my files with my server by SFTP, I just develop locally and independently from my server and when I'm finished with my changes, I do the usual stuff, like pushing them on my server (see;a=summary ) and pulling from there through local file access.

Friendica Support reshared this.

@Hypolite Petovan True you can leave out the /etc/hosts part and just access it through, e.g. https://localhost/friendica/ and set RewriteBase /friendica/ accordingly. With the separate host name you also have a separate error.log and access.log so it won't mix with other installations on your local machine.

Friendica Support reshared this.

@grischa @tobias @zwovierzwo
i'm using DDEV for local development. I've fired up Friendica within 5 minutes with the bonus that the whole config can be added to git. No more "works on my machine" as everybody is using the same config.
Never heard about DDEV before, but found their website by searching. Thanks for that hint! I will have a look at it (atm I don't even know what it does, seems to be docker related).
@grischa @tobias @zwovierzwo
Yes. But there is defacto no docker knowledge needed. Everything you need to know is written down in the config.yaml which is located in the .ddev folder.

Check my commit here:

Friendica Support reshared this.

I think I know what you meant - I hope so.
Access to the wiki? So I don't have to create an account there first and then you can give it further access.
As far as I have seen this is a Dokuwiki and there should be so. Then I would first register in the hope that this works.
@Hypolite Petovan Thanks for the overview. Though I completely lack insight to the big picture of Friendica, "Junior Jobs" reads like worth a look.
@Andreas Kilgus What do you mean by "the big picture of Friendica" ?

Friendica Support reshared this.

@Hypolite Petovan The way its components are tied together; where I have to dig in the source if I want to change something without breaking something else. That sort of things. :)
@Andreas Kilgus Ok, I was wondering if you were talking about the philosophy of the project. I've tagged a few task I believe are good entry points into the project code, please ask questions if you're unsure of something.
I had a plan on doing a documentation rewrite, and then was hit by a pandemic - I think I have approximately 20 minutes a week to commit to it - but maybe that's unfair - I have about a month of vacation coming up and I will try to commit some time
@silverwizard Please start small, Rome, a day, etc... If you have more ambitious plans, please present them to other people to garner support.
Remote Debugging with PHPstorm works very will. You'll need an ssh tunnel to the Tunnel and a mirror of the folders on the Server on your local drive.
here is a tutorial
@Raroun Thanks, I know it's possible but I've never included remote debugging in my toolbox so I don't even know when it would be warranted or not.

Friendica Support reshared this.

But this only works, when the remote server supports XDebug, right? This is not the case in too much environments, I guess.. ๐Ÿค”
Sadly, yes :(
I work with my own servers, so it wasnโ€™t a problem for me to set it up :)
@grischa I have XDebug installed on my remote server, I use it for more verbose error messages and also for the profiler, but not for remote debugging.
@Hypolite Petovan
another question at this point.
Does a kind of Kanban board exist for tasks that are pending or would that perhaps be a solution for development and the tasks that are currently being completed or should still be developed?
In my office, we have had relatively good experiences with this - for example, we have Taiga running here.
@Hypolite Petovan
well - I thought maybe there is something like a visual structuring here and you can see who is working on which tasks. We have something like that at work, so we can do sprints and see who is working on which problem, new function and which bugs.
This allows us to move them from release to release and prioritize or categorize them accordingly.
But also if it takes longer or certain dependencies still needs us to write under tasks.
@7homas โ™“ If the Core Developers team grows even by one, I think it would be good to start having this kind of project management tool. With three people I feel like this is still manageable, but the work load isn't, so we need more people, and with more people more structure.
@Hypolite Petovan
What? Only three coding junkies. :laughing:

I understand that you are always on full throttle. :astonished face:

I also think that something has to be changed and now the code conversion appears to me in a different light.

So then we should gather all forces and bring the project forward.
@7homas โ™“ Of us three, I believe only Michael consistently commits time to the project. My contributions have been more irregular, although I do keep an eye on the GitHub project, so even when I'm not actively contributing code, I'm looking for ways to help others.
@Hypolite Petovan
Well, it's a pity that there aren't more people here who can or want to contribute more time to the project.
Basically, it's a really great idea that you can host Friendica like, for example, a Wordpress. So the number of servers should actually be higher than they are currently due to this possibility.
But of course the code part is very complex and probably needs to be cleaned up and improved at one point or another.
So it is clear to me that this cannot be achieved due to the small number of heads, that one makes a big cut as I had suggested one time or another.

My goal would be to understand the code more and maybe start with a small junior point, but if something like that isn't really on the agenda and it's better not to experiment with the code, then that's the way it is.

Friendica Support reshared this.

I don't have much experience with PHP (I did it for 3 days in 2009, I think), and I'm currently a bit busy, but I might try to tackle some fairly language-independent issues over the Christmas break, if you have any.

Friendica Support reshared this.

@Martijn Vos Thank you for the offer! I'll try to flag some suitable issues!
@Hypolite Petovan Thank me when I've got a PR ready. There's absolutely no guarantee I'll actually get that far.

By the way, you do have js front-end code, so that's something I should be able to pick up. Also, I'm generally at my best dealing with complex interactions, front-backend interaction, algorithms, data structures, that sort of stuff. (And refactoring tech debt and complex code into something more readable, but maybe that's not the best place to start an unfamiliar language.) I'm terrible at infra, configurations, and fancy CSS. Just in case you have an issue that would be a good fit for that. But I don't mind picking up something else.

Friendica Support reshared this.

@Martijn Vos We are in an absolute dearth of front-end developers, so your help would be absolutely welcome. I believe our days of fancy CSS are behind us with the frio theme, but interactions can be added or improved. Case in point:

If you could look into this, this would take a big worry off my plate.
@Hypolite Petovan I'll have a look at it. But don't expect quick results from me; I also have a paid job for stuff like this.

Friendica Support reshared this.

@Martijn Vos All of us do as well! No fancy full-time developer for Friendica (yet). Please donโ€™t hesitate to ask questions.

Friendica Support reshared this.

@Hypolite Petovan
how is the plan, if i want to change something in friendica - esspacially with the junior jobs.
Git Checkout - make own branch and then i think a merge to the develop branche can not be done by the non core team developer
@Martijn Vos

Friendica Support reshared this.

Yes @7homas โ™“, there is basically no distinction between first time committer and long term dev.

You clone the repository, make your changes in your project branch. Test the changes till you are satisfied and push them to github. There do a pull request and some core developers will review your code. At the end of the review the code will be merged (or not) and along the way, some changes to the work might be asked for.

I have been considering it already, but I'd have to relearn (modern) PHP, since I haven't used it since around 2004 (PHPv4, I think).
@Linux Walt Alt (@lnxw37a2) {3EB165E0-5BB1-45D2-9E7D-93B31821F864} This is most antiquated indeed. Beyond shiny new language features, weโ€™ve started implementing Dependency Injection and a form of Domain-Driven Development, so getting familiar with these terms would also help.
Happy to help out. Is there any documentation on how to set up a development environment? Haven't done PHP in 20 years or so but have lots of experience in other languages.

If a VS Code devcontainer setup that launches a LAMP environment with Friendica preconfigured would be useful, I'm happy to contribute that for starters.

That, and I'm curious how to populate a node with test data. Can I just dump and import my main account, or is there a better way?
@Nolan Darilek Hi Nolan and thank you for the offer! There are no specific steps to set up a development environment aside from installing a node. A challenge with a local development setup is the potential lack of federation with other servers.

As for populating a node with test data, creating a few users and following remote accounts are enough for most purposes. Although dumping your main account and importing it would be a great way to test this seldom-used feature!

Friendica Support reshared this.

OK, I'll give it a shot in the next few days and will see where I get with it.
@Le Gรฉnรฉral Midi Merci ! N'รฉtiez-vous pas sur Diaspora avant ? Je crois reconnaรฎtre votre nom de profil ansi que le nom de votre groupe de musique.

Friendica Support reshared this.

@Hypolite Petovan
Oui, j'y suis toujours, pour les posts un peu plus long et les copaines que je m'y suis fait.
Et c'est justement bien qu'iels puissent lire mes posts #friendica et que je puisse y partager les leurs.
Je ne sais pas si c'est faisable avec #mastodon ?

Friendica Support reshared this.

@Le Gรฉnรฉral Midi Non, pas du tout, le #Fedivers (basรฉ sur ActivityPub) et la #Fรฉdรฉration (basรฉe sur Diaspora) sont deux rรฉseaux incompatibles entre eux. Une poignรฉe de plate-formes supporte les deux protocoles (Friendica et Hubzilla en tรชte) mais cela conduit ร  des discussions fragmentรฉes oรน les utilisateurs de Diaspora ne peuvent voir que les rรฉponses Friendica aux comptes Mastodon, et vice-versa.

Friendica Support reshared this.

@Hypolite Petovan
Ah, รงa explique certaines conversations ๐Ÿค“

Friendica Support reshared this.

@legeneralmidi En thรฉorie, tous les services fรฉdiversaux sont interopรฉrables, mais mes partages de Mastodon ร  #Friendica viennent sans texte.

Friendica Support reshared this.

@n8chz โ’ถโ’บ Dรฉsolรฉ pour รงa, ce problรจme semble รชtre trรจs spรฉcifique ร  votre situation. Il sera difficile de le rรฉsoudre fiablement si nous ne pouvons pas le reproduire fiablement de notre cรดtรฉ.

Friendica Support reshared this.