Friendica 3.6 released

The year started with sad news that Tony Baldwin passed away January 6th. Tony was an early member of the Friendica/RedMatrix/Hubzilla community who contributed ideas, addons, themes and utility tools. He was a great spirit among the FLOSS people, an artist, a translator, an interpreter and a great friend who is deeply missed.

This release is dedicated to the memory of Tony “tazman” Baldwin.

Screenshot of the Diabook theme

Screenshot of the Diabook theme by Tony “tazman” Baldwin CC BY-SA 3.0 Source en.wikipedia.org

With no further ado, we’d like to present to you Friendica 3.6 The Tazmans Flax-​lily.

Noteworthy Changes

It took a long while this time for the developers find the opportunity to say now is the right time. Initially we wanted to have the release after last years hackathon, but then the big adventure of reorganising the code was started and that took some time. But the long wait was worth it, the code got cleaner and faster.

Some things we want to highlight are:

  • You can now interact with postings on the community page, even if you are not connected with the author.
  • Forums can now be addressed with an !, e.g. !helpers. The ACL dialog does this automatically when you select a forum as recipient and has the forums listed separately from user groups and regular contacts. Addressing a forum with an ! will make the posting exclusively for the subscribers to the forum (public or private depends on the forum settings).
  • You can now follow hashtags
  • Dependency management is now done using composer (see below).
  • The API was improved, letting the native clients provide a nicer mobile user experience.

Additionally we fixed numerous bugs that the community had found and we polished some quirks and added some more features. For the complete list of changes, please see the CHANGELOG file.

You can find the video on peertube and Vimeo.

How to Update?

We started to use composer for dependency management. This means, that if you are using git to manage the Friendica sources on your server, there is now an additional step in the update process. If you used the archives provided, you don’t need to care about it, as the archives contain the dependencies as well.

Should you encounter any problems while testing the RC code, please let us know about in the Friendica support forum, at github or over any other of the support channels.

Independent of the update path you are choosing, please be aware that there are some changes to the database structure to enhance the performance of Friendica that will be applied automatically to your database. Depending on the size of your database, especially the item table, these changes can take several hours.

If you are updating from a very old version of Friendica, you have to first update to version 3.5.4 before you can update to the 3.6 release.

Please note that due a slight oversight we did not encounter during testing in the RC phase you currently need php7 with the version 3.6. We are working on a 3.6.1 release that will then work again with php5.6. 3.6.1 should be available soon.

Updating with git from the stable (master) branch

As mentioned above, Friendica is now using composer for dependency management. This means that you have to do one further step when updating your git repository. This can be either an additional command every time you update, or adding a shell script to a git hook.

Composer needs to be able to unpack the downloaded archives, hence you need to have the PHP zip module available on your server.

If you want to do it all manually, then use the following sequence of commands: starting in the base directory of your Friendica installation.

git pull
php util/composer.phar install
cd addon
git pull

This will download the updated sources from github, call composer to get the dependencies and then change into the addon repository to fetch the new code there as well.

If you don’t want to remember this every time you pull, you can also use a so called git-hook to do it automatically. Please have a look at the docs for further information about this.

Updating with git from the RC or the development branches

As the changes regarding the dependency management are likely already in place on your system, a git pull in your Friendica core repository and the addon repository should bring you on the latest code as usual.

If you helped testing the release candidate–thanks a lot for helping!–you need to decide either to checkout the master or develop branch after the pull.

If you are using the develop branch, please be reminded about the recent path changes for many scripts.

Updating using the source archives

If you had downloaded the source files in an archive file (zip or tar.gz) please download the current version of the archive from GitHub (friendica-full-3.6.zip or tar.gz and friendica-addons-3.6.zip or tar.gz) and unpack it on your local computer.

As many files got deleted or moved around, please upload the unpacked files to a new directory on your server (say friendica_new) and copy over your existing  .htconfig.php file to friendica_new. Afterwards rename your current Friendica directory (e.g. friendica) to friendica_old and friendica_new to friendica.

The files of the dependencies are included in the archive (make sure that you use the friendica-full-3.6 archives), so you don’t have to worry about them.

After you performed the update, you need to touch your cron job for the background process. The script handling the worker has been moved to scripts directory. So your cron job must now contain: something like

/usr/bin/php scripts/worker.php

instead of the old location in the include directory.

How to contribute?

If you want to contribute to the project you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “Junior Jobs” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at github or let us know in the development forum.

Contribution to Friendica is also not limited to coding. Any contribution to the documentation, the translation or advertisement materials is welcome or reporting a problem. You don’t need to deal with git(hub) or Transifex if you don’t like to. Just get in touch with us and we will get the materials to the appropriate places.

Thanks everyone who helped making this release possible and have fun!

screenshot of the landing page of Friendica 3.6 using the frio theme

landing page for visitors using the frio theme


Develop: Executables have moved permanently

For anyone using the develop branch, as of now there are major changes about the executable scripts:

  • composer.pharworker.phpdaemon.php and auth_ejabberd.php have been moved to the newly created bin/ folder
  • A new CLI console has been created and can be accessed with bin/console or php bin/console.php. Calling it without arguments shows the list of available commands.
  • All the PHP executable scripts in util/ and scripts/dbstructure.php have been moved to the new console.

Thanks for your patience!


Friendica 3.6 RC available

Hey everyone, we have just branched off a release candidate branch for the next stable release of Friendica to focus on testing the code and fixing the final problem. For this to succeed, we’d like to ask you to test the 3.6-rc code on your node if you like.

This branch is for the final bug fixes and translation updates before the release. We don’t expect to heavy changes to it till the release. New features wont be included there. Instead pull requests for those should be done against the development branch as usual.

Before you update the code, please check that you have at least PHP 5.6 on your server available. Friendica does not work properly with version older then that.

How to switch to the RC branch?

If you are currently running the develop branch, then all you have to do is to checkout the 3.6-rc branch after a pull from the repositories.

git pull
git checkout 3.6-rc
cd addon
git pull
git checkout 3.6-rc

Assuming that you already have the composer call in your updating routing. In the last couple days there were no changes to the dependencies.

If you are currently using the last stable release code installed from git, the procedure is almost identical. There is one thing you should be aware of before doing the switch—we switched to composer for dependency management. If you don’t take this into account, your Friendica node will not work after the pull of the new code.

You can either add a call to

util/composer.phar install --no-dev

after the git pull in your update routines for the core repository, or you can add a small script to the “post-merge” git-hook. The script will then automatically be executed by git if there were changes to the dependencies.

Please be aware, that there were some heavy work on the database structure since the last stable release of Friendica. This means that depending on the size of your database, your node might need some time to apply all the changes. This can be several hours. The maintenance mode will inform you about the progress.

After you performed the update, you need to touch your cron job for the background process. The script handling the worker has been moved to scripts directory. So your cron job must now contain: something like

/usr/bin/php scripts/worker.php

instead of the old location in the include directory.

If you are updating from a very old version of Friendica, you have to first update to version 3.5.4 before you can update to the 3.6-rc branch.

Should you encounter any problems while testing the RC code, please let us know about in the Friendica support forum, at github or over any other of the support channels.

Thanks for testing and helping!

Solving Problems

DB Update stuck

One tester reported, that the update of the database got stuck at the item table for several hours. If you encounter this, please initiate the DB update manually from the command line by running the script

scripts/dbstructure.php update

from the base of your Friendica installation. If the output contains any error message, please let us know using the channels mentioned above.


Zwenkau 2018

Dear community members, the preparations for the Friendica and Hubzilla Community meetup this summer have just begun. We are looking for a weekend the happening should take place.

Actually we have found the weekend. The meetup will happen August 4th/5th with guests from northern America (hence the fixation of the weekend) and the rest or the world.

If you plan to join us at the lake side, please have a look at the planing dudle to indicate that you want to join us.


Important changes for the development branch of Friendica

Soon we will merge a change into the develop branch that will affect the way that the system is updated.

By now it was enough to call “git pull” to get the newest code. When you are on the “develop” branch you will now have to execute a second command after this pull.

For a detailed explanation I’m forwarding a part of a message from Hypolite according this:

an upcoming PR on the develop will change the way you will install and update Friendica. From now on, after cloning the friendica/friendica repository or after each pull, the following command is necessary to import the dependencies:
friendica$ util/composer.phar install

This will populate the vendor folder who will be dropped from the friendica repository after this PR.

This command is already available right now, however so far it wasn’t doing anything because we versioned all the dependencies along with the Friendica code.

For developers:

If you intend on adding new Composer dependencies, you still have to run
friendica$ util/composer.phar install

after any git pull and before making any change to composer.json and running
friendica$ util/composer.phar update

This is because we are using a Composer plugin to import Javascript dependencies along with PHP and this plugin needs to be imported before it can look up new Javascript dependencies.


Hackathon Berlin 2017

Thanks to the nice people of the e-lok we had our Hackathon over the last weekend near Ostkreuz station in Berlin. Seven people coming together to work on the themes, code and the documentation. Altogether we had many discussion rounds, a small workshop, produced 26 pull requests and had a lot of fun. Thanks to everybody who could attend!

On Friday evening we started with a small workshop about creating an addon for Friendica. The resulting rot13 thingy is nothing that should be used, not in this form and not for any serious purpose. But the step-by-step discussion about the code brought up enough questions to clarify the process of writing addons for Friendica. Even though it is not as good as the live workshop, you can find the code and documentation on github.,

After the warm-up phase on Friday evening, Saturday and Sunday were busy with coding and documentation work. Some highlights are:

  • The !-mentions for forums, introduced before the Hackathon got some love. The difference between the @-mentioning and the !-mentioning of a forum is, that the ! is exclusive for one forum.  Forum postings will not be send to other networks or your contacts [1],. If you select a forum in the ACL, it will make sure, that you only select one forum.
  • The documentation was updated, and in some parts new German translations were added.
  • The vier theme got a new style called Plus Minus. It is work in progress at the moment with the goal to have a minimalistic version  concentrating more on the information of the postings, and not so much on the meta stuff.

    plusminus style of the vier theme

    Screenshot of the plusminus style from the vier theme.

  • There is now the pos­si­bil­ity to enable a tag cloud wid­get on the users pro­file page, which does list the tags the pro­file owner has used for his/​her posts.
  • We set up a second directory server that you can use. The two directory servers to sync their content, so you can put any one of them into your nodes configuration. Many thanks to the Berlin Linux User Group for providing the server alongside with your node in the network!
  • We have build some preliminary version of a Debian package for Friendica. Not finished, but at least install able for now. We’ll investigate ways to publish the upcoming version 3.6 packages.
  • We wrote two new utility scripts for the admins to run from the CLI of their servers. These can be used to silence accounts from the nodes global community page or block them completely from the node.

Thanks everybody involved making this event possible! And happy coding 🙂


[1] Please note: At the moment previously selected groups, e.g. via the default postings permissions, are not overwritten. If you have a non-public default set of recipient-permissions, please the the ACL permission to public / “visible to all” before selecting the target forum.


Changes in the background process

As part of reworking the code base there today changes in the development branch landed, that require some manual configuration changes. If you are using the development branch, and have pulled the latest code from github (everything after the PR The poller is now the worker and we have a “scripts” folder #3920) you need to do the following adjustment to your cron job.

Change the old process from
*/10 * * * * cd /home/myname/mywebsite; /usr/bin/php include/poller.php
to
*/10 * * * * cd /home/myname/mywebsite; /usr/bin/php scripts/worker.php

but remember to adopt your actual path and interval settings.

If you are running the stable 3.5.4 release (or before) you don’t need to change anything at the moment!


pirati.ca and squeet.me currently unavailable – Update

While updating the operating system a necessary reboot (thanks systemd for that) hadn’t worked. So the system is offline at the moment.

The support is notified. Hopefully they can solve it today. There should be no data loss.

Update:
The server is up again. There was a BIOS problem. Everything should work, although problems could occur because of the changed software packets.


Friendica 3.5.4 released

Dear Federation, the Friendica team is pleased to announce the release of Friendica *Asparagus* 3.5.4.

This release is a hotfix release for a bug that was overlooked in the 3.5.3rc phase during saving searches to the users side menu. It also includes fixes to smaller issues we had with relocating accounts from one node of the network to another. As well as the support for the new Diaspora* relocation signal, that was planned for the upcoming 3.6 release of Friendica. Which means if you move to another node, now your Diaspora contacts will receive the signal as well and vice versa.

Additionally we fixed numerous bugs that the community had found and we polished some quirks. For the complete list of changes, please see the CHANGELOG file.

How to Update?

If you used `git` to install your copy of Friendica and use the master or develop branch, a git pull is enough to upgrade.

If you have helped to iron out quirks for this release and used the 3.5.4rc branch of the repository you just need to pull from the repository and switch to either the master or develop branch.

If you had downloaded the source files in an archive file (zip or tar.gz) please download the current version of the archive from GitHub (friendica-3.5.3.zip and friendica-addons-3.5.3.zip) and unpack it on your local computer.

How to contribute?

If you want to contribute to the project you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “Junior Jobs” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at Github or let us know in the development forum.

Contribution to Friendica is also not limited to coding. Any contribution to the documentation, the translation or advertisement materials is welcome or reporting a problem. You don’t need to deal with git(hub) or Transifex if you don’t like to. Just get in touch with us and we will get the materials to the appropriate places.

Thanks everyone who helped making this release possible and have fun 🙂


Helpers forum moved to the new node as well

After the relocation of the developers forum to the new location the other day due to performance issues with the old server. We have now also relocated the Helpers forum to the new server. The new address is helpers@forum.friendi.ca. Since we have migrated the account, no changes needn’t to be done on existing connections.

Additionally we have created news@forum.friendi.ca, where you can follow these kinds of information from within the Federation.