Wrapping up the Remote Friendica Hackathon 2020

Last weekend we had our annual Hackathon for the Friendica project. Unlike the years before, this time organized remotely using a conference room at the BigBlueButton instance of Senfcall instead of the cozy venture at E-LOK. Meeting in person is great, for all the socializing around the project, but we did manage to get some of it into the virtual space. Discussing lots of issues and ideas for Friendica and having a productive weekend.

Thanks to all, who made this weekend as wonderful as it was 🙂

schedule of the 2020 remote Hackathon
This slide shows the schedule of the 2020 Hackathon for Friendica

What did we hack on?

Over the Hackathon we had 23 pull requests merged into the core repository of Friendica. Eleven pull requests for the directory and two for the addons repository got merged as well. Some of the highlights:

  • We kicked off a new wiki for the project at wiki.friendi.ca where we want to bundle the documentation and make it available in more languages, extending the translation effort.
  • The user directories, e.g. dir.friendica.social, got many improvements and some fixes.
  • There is now an initial version of a small Python tool to extract the content from the backup data files everybody can download from their Friendica accounts–and we fixed a bug in that export function.
  • The endless scrolling setting is now effective on more pages to unify the behavior.
  • The community pages got some options better concentrate on interesting things and got some performance enhancements.
  • The update_active_contacts option was added to the configuration of Friendica which might help to enhance the performance of nodes running on limited hardware like the RaspberryPi.

Friendica 2020.09-1 hotfix release

During the RC phase of the 2020.09 release of Friendica a problem during sending out notification mails was not observed by the testers, but only reported after the release. Therefore we release now the 2020.09-1 hotfix release which will re-enable those mails.

How to Update

Updating from old Friendica versions

If you are updating from an older version than the 2020.03 release, please first update your Friendica instance to that version.

Pre-Update Procedures

Ensure that the last backup of your Friendica installation was done recently. We had no problems reported during the upgrade process from 2020.07 to the 2020.09 release candidate, so hopefully you will have a smooth transition.

Please make sure to use Barracuda as MySQL DB file format for your Friendica database. Change your database settings before you proceed with the Friendica update. This change will take some time depending on the size of your database.

Using Git

Important: We are removing the master branch and are using the stable branch instead.

Updating from the git repositories should only involve a pull from the Friendica core repository and addons repository, regardless of the branch (stable or develop) you are using. Remember to update the dependencies with composer as well.

cd friendica
git fetch
git checkout BRANCH
bin/composer.phar install --no-dev
cd addon
git fetch
git checkout BRANCH

Pulling in the dependencies with composer will show some deprecation warning, we will be working on that in the upcoming release.

Using the Archive Files

If you had downloaded the source files in an archive file (tar.gz) please download the current version of the archive (friendica-full-2020.09-1.tar.gz and friendica-addons 2020.09-1.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 configuration (config/local.config.php and config/addon.config.php) and .htaccess files. 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 you are using the friendica-full-2020.09 archive), so you don’t have to worry about them.

Post Update Tasks

The database update should be applied automatically, but sometimes it gets stuck. If you encounter this, please initiate the DB update manually from the command line by running the script

bin/console dbstructure update

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

Please note, that some of the changes to the database structure will take some time to be applied, depending on the size of your Friendica database.

Known Issues

If you are using lighttpd to serve your Friendica node the boolean AND operator for the full text search seems not to be working at the moment.

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!


Friendica 2020.09 Released

We are happy to announce the availability of Friendica Red Hot Poker 2020.09, wrapping up the work over the summer. It bundles some exciting new features and enhancements with numerous fixes along the way.

This release is composed of 230 pull requests to the development branch, that close 65 numbered tickets and enhanced several aspects of Friendica and the communication with other projects within the Fediverse. For a full reference, please have a look at the CHANGELOG file, some important things are worth highlighting them here:

  • The speed of the full text search was enhanced significantly. If you had disabled it before, please check it out now and let us know if it works now for you as we are considering to remove the option to disable it in a future release.
  • The themes got some updates. Among other things the way how a re-share is displayed. If you like the old display style better you’ll find an option in the user settings to switch back.
  • Some time ago we did a user voting about which additional features should be handled in a unified way on all Friendica instances. The last of these items are not reworked. One of these is, that all public calendar entries are now available as iCAL file from your profile.
  • Friendica is now supporting Activity Pub relay server. For more information please have a look at this forum thread

Additionally this release contains a fix for a problem that Roger Meyer discovered in the processing of Activity Pub messages. We encurage all Friendica admins to update their nodes to the 2020.09 release to prevent problems arising from this. Thanks to Roger to report the issue!

If you are using PHP version 7.0 there is currently a problem with one of the dependencies of Friendica. Please see this forum thread for more information.

Wordcloud of the commit titles from the 2020.09 release
A wordcloud generated from the titles fo the commit messages merged during the development cycle of Friendica 2020.09

How to Update

Updating from old Friendica versions

If you are updating from an older version than the 2020.03 release, please first update your Friendica instance to that version.

Pre-Update Procedures

Ensure that the last backup of your Friendica installation was done recently. We had no problems reported during the upgrade process from 2020.07 to the 2020.09 release candidate, so hopefully you will have a smooth transition.

Please make sure to use Barracuda as MySQL DB file format for your Friendica database. Change your database settings before you proceed with the Friendica update. This change will take some time depending on the size of your database.

Using Git

Important: We are removing the master branch and are using the stable branch instead.

Updating from the git repositories should only involve a pull from the Friendica core repository and addons repository. Remember to update the dependencies with composer as well.

cd friendica
git fetch
git checkout BRANCH
bin/composer.phar install --no-dev
cd addon
git fetch
git checkout BRANCH

Where BRANCH is either the new stable branch or the develop branch, depending which version of Friendica you want to use. The old master branch will not receive any updates and will be removed soon.

Pulling in the dependencies with composer will show some deprecation warning, we will be working on that in the upcoming release.

Using the Archive Files

If you had downloaded the source files in an archive file (tar.gz) please download the current version of the archive (friendica-full-2020.09.tar.gz and friendica-addons 2020.09.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 configuration (config/local.config.php and config/addon.config.php) and .htaccess files. 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 you are using the friendica-full-2020.09 archive), so you don’t have to worry about them.

Post Update Tasks

The database update should be applied automatically, but maybe it gets stuck. If you encounter this, please initiate the DB update manually from the command line by running the script

bin/console dbstructure update

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

Please note, that some of the changes to the database structure will take some time to be applied, depending on the size of your Friendica database.

Known Issues

If you are using lighttpd to serve your Friendica node the boolean AND operator for the full text search seems not to be working at the moment.

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!


Friendica Hackathon 2020 Schedule

As mentioned before the Friendica Hackathon this year wont be in Berlin. Instead over the weekend from Friday, September 25th to Sunday, September 27th, we will come together virtually and you are invited to join us.

You want to join the Hackathon?

Great to hear! And welcome aboard. Please let us know about your plans what you want to work on in this thread[1] in the Developers forum. If you are unsure where to start, this list of issues might give you an idea and the Hackathon is the perfect moment to get some Friendica developers to clarify questions.

Location

We will meet for audio/video chats in a Big Blue Button conference room using the senfcall service. You will find the exact room URL in the etherpad for the Hackathon, once the URL is fixed Friday morning in Europe.

Additionally we will be most likely idling in the XMPP, IRC and Matrix rooms for the Friendica community (see the External Resources page in the docs for their addresses).

Fixed dates

The first meeting of the participants of the Hackathon will be on Friday at 17h UTC.

Most of the time we will hack on the code (e.g. the upcoming 2020.12 release). Tinker about problems in solitude, undisturbed by the Squirrels. However we want to get together once in a while. For taking a break, getting something to drink and to brainstorm together about stuff that just came up. For this all the participants (unless sleeping or otherwise occupied by more important things) shall meet at the conference room at UTC 8h, 14h and 18h.

Additionally we will have an open round that everybody interested in Friendica can join on Friday at 18h UTC . To ask questions, give feedback and make suggestions. If you want to join, please put your topic into this etherpad so we can group the topics.

The coffee break on Sunday at 18h UTC will be the closing event of the Hackathon.

Links

Notes

1: The thread is public so you can search for the URL and join the conversation.


Hotfix Release of Friendica 2020.07-1

Thanks to Roger Meyer who reported a flaw in the administration module of Friendica, we could fix a security vulnerability that could leak sensitive information from the server environment. The hotfix release 2020.07-1 includes the patch for the stable release branch of Friendica. The development and RC branches have been updated as well.

Affected versions of Friendica

All versions of Friendica since April 2019 (develop branch) and June 2019 (stable) are affected.

Through the admin module environment variables of the server system can be read by anyone on the internet. Among other things this may include database passwords for Docker installs and the memcached SASL password. Therefore we recommend all node admins to change their potentially affected passwords after the upgrade to 2020.07-1. Furthermore this fix also prevents anonymous users to update node-wide addon settings.

How to Upgrade.

This information only applies to the stable release 2020.07 of Friendica. The patch has separately been added to the develop and 2020.09-rc branch of the repository.

Using Git

Important: We are removing the master branch and are using the stable branch instead.

Updating from the git repositories of Friendica will be a bit more complicated as you might be used to as we decided to rename the branch for the stable releases to stable. Hence you need to switch the branch you want to use, after pulling the current version of the code from the repositories. As usual, please remember to update the dependencies with composer as well.

cd friendica
git fetch
git checkout stable
git pull

Pulling in the dependencies with composer is not necessary for this hotfix release.

Using the Archive Files

If you had downloaded the source files in an archive file (tar.gz) please download the current version of the archive (friendica-full-2020.07-1) file and unpack it on your local computer. Compared to the 2020.07 release only a few files were updated and none of the config files are affected. So you can just upload the changed files onto your server.

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 again Roger Meyer to make us aware of this problem!


Friendica 2020.09 Release Candidate available

We are wrapping up the summer contributions to Friendica for the upcoming release and are very happy to announce the availability of the release candidate in the git repositories.

If you want to help to find some bugs and rough edges in the 2020.09 release, now is the perfect moment to switch from the stable or development branch to the freshly created 2020.09-rc branch. To do so please run

git fetch
git checkout 2020.09-rc
git pull
bin/composer.phar install --no-dev

in the root directory of your Friendica and the addon directory. The command to update the dependencies (composer) is only necessary in the Friendica root directory.

Thanks for testing the new release! If you find any problems, please report them either at the issue tracker on github or in the support forum.

Known Problems

Please note, that one of the dependencies of Friendica is currently incompatible with PHP 7.0. If you are still running that version of PHP, please have a look at this forum thread for a workaround.

Should the DB update process get stuck

If you encounter this, please initiate the DB update manually from the command line by running the script

./bin/console dbstructure update

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


Friendica Hackathon 2020

We will have our annual Friendica Hackathon from Friday, September 25th till Sunday 27th. But as you might have guessed, we wont meet at the venue of the last years Hackathons but instead do it online.

If you want to participate, please join the conversation in the developers forum. We will put some more information online soon.


Friendica “Red Hot Poker” 2020.07 released

We are pleased to announce the slightly delayed release of Friendica 2020.07.

Thanks to everyone who contributed to make this release! The 2020.07 release is composed from 280 tickets, closing 66 numbered issues and enhanced several aspects of Friendica and the communication with other projects within the Fediverse and the Federation. For a full reference, please have a look at the CHANGELOG file, some important things are worth highlighting them here:

  • Friendica is now using table views for the database which can cause errors from the MySQL database (Prepared statement needs to be re-prepared). If you encounter such, please have a look at this issue in the Friendica tracker and this article at stackoverflow if you are encountering problems in that aspect,
  • In the frio theme we introduced a more… menu at the bottom of postings which contains the not so often used actions (editing, pinning, etc.), Additionally it is now save to hit the ESC key while composing a new posting.
  • You will now find allow lists, deny lists and block lists instead of their old labels.
  • We found some places where we could enhance the performance of Friendica.

Not directly linked to this release but worth mentioning is the cleanup-friendica script by ingoj to assist Friendica node admins and help with forgotten or dead accounts.

How to Update

Updating from old Friendica versions

If you are updating from an older version than the 2020.03 release, please first update your Friendica instance to that version.

Pre-Update Procedures

If you are using PHP version 7.0 there is currently a problem with one of the dependencies of Friendica. Please see this forum thread for more information.

Ensure that the last backup of your Friendica installation was done recently. We had no problems reported during the upgrade process from 2020.03 to the 2020.06 release candidate, so hopefully you will have a smooth transition.

Please make sure to use Barracuda as MySQL DB file format for your Friendica database. Change your database settings before you proceed with the Friendica update. To apply the changes you can use the following command from the Friendica console tool

bin/console dbstructure toinnodb

This change will take some time depending on the size of your database.

Using Git

Important: We are removing the master branch and are using the stable branch instead.

Updating from the git repositories of Friendica will be a bit more complicated as you might be used to as we decided to rename the branch for the stable releases to stable. Hence you need to switch the branch you want to use, after pulling the current version of the code from the repositories. As usual, please remember to update the dependencies with composer as well.

cd friendica
git fetch
git checkout BRANCH
bin/composer.phar install
cd addon
git fetch
git checkout BRANCH

Where BRANCH is either the new stable branch or the develop branch, depending which version of Friendica you want to use. The old master branch will not receive any updates and will be removed soon.

Pulling in the dependencies with composer will show some deprecation warning, we will be working on that in the upcoming release.

Using the Archive Files

If you had downloaded the source files in an archive file (tar.gz) please download the current version of the archive (friendica-full-2020.07.tar.gz and friendica-addons 2020.07.tar.gz, Note both are located at github) 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 configuration (config/local.config.php and config/addon.config.php) and .htaccess files. 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 you are using the friendica-full-2020.03 archive), so you don’t have to worry about them.

Post Update Tasks

The database update should be applied automatically, but maybe it gets stuck. If you encounter this, please initiate the DB update manually from the command line by running the script

bin/console dbstructure update

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

Please note, that some of the changes to the database structure will take some time (days)) to be applied, depending on the size of your Friendica database.

Known Issues

After the release it was reported, that one of the dependencies of Friendica is currently not compatible to PHP 7.0, although claiming otherwise. If you are using this version of PHP and want to install Friendica 2020.07 you have to edit the source code slight.y. For more information, see the forum thread about the problem.

If you are using MySQL there is an issue under investigation you should be aware of. This issue affects only users of MySQL, users of MariaDB have not reported this issue.

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!


Happy 10th Birthday Friendica!

Ten years ago the 1st commit to the git repository of Mistpark was made by Mike Macgirvin, a project that since has become Friendica accumulating some 27.000 commits contributing the work of more then 250 people from all around the world.

Friendica themes from 2010 to 2020
Mistpark and Friendica themes from 2010 to 2020

Together we have build a social media platform that had many faces over the years. It has grown from a decentralized communication platform into an integral part of the Fediverse and Federation. Allowing its users to interact with their friends and family across the borders of nodes, projects and physical distance outside the world of data-harvesting corporations.

Thank you Mike and everybody else who has contributed their time to the project over the years! And while we are preparing the 2020.06 release of Friendica, lets have a big party to celebrate ten years of this wonderful part of the free social web.


Friendica “Red Hot Poker” 2020.03 released

We are happy to announce the avail-ability of Friendica “Red Hot Poker” 2020.03!

Thanks to all the helpers during the RC phase to polish some corners of the release. Almost 400 tickets went into this release according to the milestone, closing something around 90 numbered issues and some unnumbered as well. But along all these fixes we also introduced some new features and revamped some aspects of your daily life with Friendica. For a complete list of changes, please have a look into the CHANGELOG, here are some of the highlights:

  • We adopted the “audio” type for ActivityPub postings and are now federating with Funkwhale.
  • The multiple profile feature was removed and replaced by free form profile fields that you can present different audiences (unverified visitors of your profile and selected Friendica contact/-groups). The old (additional) profiles are converted automatically for the new format.
  • The hide-wall profile option was replaced by a hopefully more clear option to have your public postings unlisted on the community page of your node.
  • The creation of delegated accounts was made more easy.
  • The accessibility of the web-interface was improved.
  • Admins can now manage the users of their node from the command line.
  • An addon to use Markdown instead of BBCode while composing new postings and comments was added.

Thanks to all the people who have made this release possible!

How to Update

Updating from old Friendica versions

If you are updating from an older version than the 2018.09 release, please first update your Friendica instance to that version as there were several important changes in that version.

Please note, that we moved the shipped .htaccess file to .htaccess-dist in the 2019.01 version. Make sure that you have saved a copy of the file if you made any changes to it, so that you can copy the file from the backup after the upgrade.

Please further note, that since Friendica 3.6 we use Composer for dependency management. If you are updating via git, you have to remember to update the dependencies as well.

Furthermore, we raised the minimal requirements with the 2019.06 version to PHP 7. Before updating please ensure that you are using a supported PHP version on your server. We suggest PHP 7.2 or later.

Pre-Update Procedures

Ensure that the last backup of your Friendica installation was done recently. While testing, we had some reports about problems with the profile field migration. All of these should be fixed, but better safe than sorry.

Please make sure to use Barracuda as MySQL DB file format for your Friendica database. Change your database settings before you proceed with the Friendica update. This change will take some time.

If you are using PHP version 7.0 please be aware of an issue with one of the dependencies of Friendica. You should read this forum thread before updating as you need to manually adjust the code or update your PHP version.

Using Git

Updating from the git repositories should only involve a pull from the Friendica core repository and addons repository. Remember to update the dependencies with composer as well.

cd friendica
git pull
bin/composer.phar install
cd addon
git pull

If you want to switch the branch (e.g. if you helped to test the release candidate) please do so after the pull using git checkout master (or develop).

Be aware that the .htaccess file was removed from the git repository in the 2019.01 version. You might have to restore yours from a backup (if you have done local changes) or from the .htaccess-dist if you had not done it before.

Using the Archive Files

If you had downloaded the source files in an archive file (tar.gz) please download the current version of the archive (friendica-full-2020.03.tar.gz and friendica-addons-2020.03.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 configuration (config/local.config.php and config/addon.config.php) and .htaccess files. 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 you are using the friendica-full-2020.03 archive), so you don’t have to worry about them.

Please be aware of the changes in the configuration format in the 2019.03 version. You should follow the instructions linked from your admin panel as soon as possible to move your configuration to the new location.

Post Update Tasks

The database update should be applied automatically, but maybe it gets stuck. If you encounter this, please initiate the DB update manually from the command line by running the script

bin/console dbstructure update

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

Please note, that some of the changes to the database structure will take some time (hours)) to be applied, depending on the size of your Friendica database.

Known Issues

After the release it was reported, that one of the dependencies of Friendica currently has problems with PHP 7.0. If you are using PHP version 7.0 please be aware of this issue. You should read this forum thread before updating as you need to manually adjust the code or update your PHP version.

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!