GSoC17 : Client Side File Crypto : Week 7

Posted by Tameesh Biswas | Blog - 19 Jul 2017 at 14:12 UTC
GSoC17 : Client Side File Crypto : Week 7

This blog post summarises the seventh week of writing code for Drupal for the Google Summer of Code.

tameeshb Wed, 07/19/2017 - 19:42 Tags GSoC Google Summer of Code 2017 Drupal Drupal Blog

Top 5 Lessons I’ve Learned Working with Drupal 8

Posted by Acquia Developer Center Blog - 19 Jul 2017 at 13:49 UTC
an explorer

Now that Drupal 8 is “production ready,” and agencies are ready to expand their capabilities by building in Drupal 8, clients are asking about it, and the community’s focus has shifted to developing for it.

Drupal 8’s predecessor, Drupal 7, has been around since January 2011, which means that by late 2016 everyone working in Drupal was very familiar with the ins-and-outs of how Drupal 7 worked.

Tags: acquia drupal planet

Interactive HTML5 content on Drupal site

Posted by InternetDevels - 19 Jul 2017 at 11:37 UTC
Interactive HTML5 content on Drupal site

Since content is king, content marketing is a must-have strategy. With the content you present on the web, you can attract visitors and keep them interested. But have you ever wanted to interact and collaborate with your users through the content? Do you need them not just passively perceive your content, but take some actions with it? This is possible with H5P (HTML 5 Package).

Read more

A Successful One-Click Deployment in Drupal 8

Posted by Lullabot - 19 Jul 2017 at 11:24 UTC

When I started building the DrupalCamp Spain 2017 website I was very excited to see how far could I get with Configuration Management. A lot of effort went into Drupal 8 to make the management of configuration seamless without the dependency on contributed modules like Features. Long story short: Configuration Management works wonderfully if you introduce it in your development workflow. In this article, we will walk through how to implement, test, and deploy a release of DrupalCamp Spain’s website, including some issues we ran into and how we resolved them.

The goal: just push the button

Our goal with deployments at DrupalCamp Spain was that there should be nothing left to do on the website after the Jenkins job that performs the deployment has completed. It worked in the following way:

Someone would open the Jenkins production deployment job, select a git tag, and click build:

undefined

The above job would, via an Ansible task:

  1. Deploy the source code.
  2. Run composer install in a new directory.
  3. Run database updates: drush update-db -y.
  4. Import configuration: drush config-import -y.
  5. Purge Varnish caches: varnish clean domain all.

Here is the log of a successful deployment. In the following sections, we will see how to setup our project to achieve one-click deployments.

The starting point

The DrupalCamp Spain website has a public repository that you can fork and explore. It uses:

Now, let’s look at one of the past deployments and then dissect it together.

A sample deployment

Even though the DrupalCamp Spain website was a fairly small project, we did many deployments to the production environment. As an example, I have chosen the 2.2.2 release - List session proposals because:

  • It includes a database update.
  • It contains configuration changes.
  • It involves code changes.
  • It adds new dependencies.

Here is the list of changes for the release:

undefined

If you are wondering how all of the above could be deployed successfully, the answer is twofold. First, we had a Jenkins job in charge of deploying the code. Second, we had a development process which tested deployments that we will look at in the next section.

Working on an issue

Release 2.2.2 was the result of the Call4Papers milestone. This milestone consisted of four issues which were completed via pull requests. We followed this development process:

  1. Install the site locally following the repository’s README.
  2. Pick an open issue like List session proposals.
  3. Create a new branch from master with the issue number such as 113-list-proposals.
  4. Implement the requirements and create a pull request when the branch is ready for review. If there are changes in configuration, export them via drush config-export and include them in the pull request.
  5. Once the pull request is merged, check Jenkins to verify that the automatic deployment to the development environment worked.
Polishing the deployment

In this case, I merged the pull request, and that triggered a Jenkins job that deployed the changes in the master branch to the development environment. It failed, as I made a change in the pull request just before it was merged that introduced a bug. Once I fixed that in a second pull request, I introduced a different bug (slap me with a trout, please), which needed a third pull request. Once it was merged, Jenkins could run the deployment task to the development environment successfully, and there was much rejoicing.

To verify the deployment, I opened the development environment in the web browser. I was puzzled when I found out that even though the database update that installed the new module did complete successfully, the module was not installed. After some debugging, I discovered that I forgot to export my local environment’s configuration into the config directory, which, after doing it with drush config-export, contained a setting to keep the new module installed. Since Jenkins runs drush config-import after drush update-db, it uninstalled the module before the module was present in the site configuration. Therefore, I created a fourth pull request that included this fix. When Jenkins deployed it to the development environment, this time, the module was successfully installed. Phew!

It took us four deployments to get the release working in the development environment. For production, we want to accomplish it in a single deployment. In the next section, we will see how to test that.

We use a tool called Tugboat in our client's projects that helps us to spot and fix implementation and deployment bugs in the early stages of development. You can find out further details at https://tugboat.qa.

Testing the deployment to production

Once we completed all the milestone’s issues for listing sessions, we needed to make sure they could be deployed as a whole without causing errors.

Simulating a production deployment

Here is an example of how we test production deployments:

First, we triggered the Jenkins job that copies the production environment's database and files into the development environment:

undefined

Here is the log. Once we had fresh data at the development environment, we triggered the job that kicks in when someone makes changes to the master branch (which ran the Ansible task to update the database).

undefined

The job completed successfully (Yay!). I also opened the development environment’s website and verified that the new module was installed and that all the new features that we worked on the milestone were working as expected. We were ready to publish this to production!

Hitting the button

The release was complete, and we tested its deployment. Therefore, we were ready to publish it. We used the Jenkins job that takes a git tag as a parameter, deploys the code to the production environment, and finally runs the post-deploy task to update the database. It worked!

When you test deployments beforehand, you get a deep understanding of what happens during such a process. It gets especially interesting when something goes wrong, as it gives you a chance to debug the deployment process locally, fix it, and test it again at the development environment until it works flawlessly.

What happens when a deployment goes wrong in production? Setting up a roll back process is something that deserves its own article. In the meantime, what’s your development and deployment process like? Do you have any suggestions? I am looking forward to hearing your insights below.

Acknowledgements

This article was possible thanks to the following folks:

Footer image by By włodi from London, UK (The Big Red ButtonUploaded by Yarl) [CC BY-SA 2.0], via Wikimedia Commons.

How to Determine Whether You Can Upgrade From Drupal 6 to Drupal 8 (Yet)

Posted by myDropWizard.com - 18 Jul 2017 at 23:06 UTC
Drupal 6 to 8 Upgrades!

Like many of you, I have a few sites that are fairly complex, utilize dozens of modules - and still run on Drupal 6. At this point, I don't want to invest the time to migrate them to Drupal 7 because I feel the momentum is finally beginning to shift into high gear for Drupal 8.

So, how do you know whether the Drupal 8 ecosystem is ready for a relatively straightforward migration? Thankfully, there are some great resources available!

How to implement AppNexus ads in Drupal 8

Posted by Chapter Three - 18 Jul 2017 at 21:50 UTC

AppNexus + Drupal 8

One of our clients requested to integrate AppNexus ads with their Drupal 8 site. The requirements were very simple:

  • Ability to display ads as blocks.
  • Ad blocks should be configurable: tagId, Sizes. And pass those variables via apntag.defineTag().
  • Ability to pass global page options via apntag.setPageOpts().

Since there wasn't any module that would support this I decided to create a module that will be very easy to use and at the same time will be extendable and useful in other projects.

The module comes with a simple PHP class that helps to generate pageOpts from hook_page_attachments(). You may create your own class using that class as an example.

Examples for Developer #7 Week of Coding

Posted by Abhishek Lal | GSoC Blog - 18 Jul 2017 at 19:17 UTC
Examples for Developer #7 Week of Coding Abhishek Lal B Wed, 07/19/2017 - 00:47

GSoC’17 Coding period | Week #7 | UC-Wishlist

Posted by Chiranjeeb Mahanta | Blog - 18 Jul 2017 at 17:48 UTC
GSoC’17 Coding period | Week #7 | UC-Wishlist chiranjeeb2410 Tue, 07/18/2017 - 13:48

What’s new on Drupal.org? - June 2017

Posted by Drupal.org blog - 18 Jul 2017 at 15:46 UTC

Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.

Drupal.org updates

Healthcare Industry Page

Healthcare industry page launched

One of our major goals this year is to highlight the power of Drupal in key industries. The Drupal.org industry pages highlight the story of building a custom-tailored solution for each industry using third-party integrations, expert hosting, or even purpose built distributions for the industry. Each page also highlights case studies which show demonstrated success stories using Drupal in each industry. In June we've launched our latest industry page, highlighting the Healthcare industry.

Semantic Labels for Development Branches

Semantic labels for core

With a six month release cycle for Drupal core, the environment that project maintainers should test their code against will change fairly frequently. To make it easier for maintainers to keep up to date with testing - we've introduced semantic labels for the core branches. Maintainers can now configure tests against Default — the current development branch of Drupal, Stable — the most recent release of core, and Supported — the current patch/bug-fix branch.

These semantic labels should make it easier for project maintainers to manage testing. We hope to expand on this with a few more labels, and may even extend these semantic labels to the version field that issues are filed against in the future.

UTF8MB4 support

As mentioned in last month's update, we've updated the Drupal.org and the sub-sites to support the UTF8MB4 extended character set. While the changes for the sub-sites were deployed in May, we finished up by adding support to Drupal.org itself in June. Among other things, this means that Drupal.org will no longer throw errors if emoji are used in content. 😄

Updating our membership CRM

Drupal Association Membership is managed using the CiviCRM platform - and in June we spent a bit of time updating to the latest version and troubleshooting some issues around receipting and renewals. Members can check their current membership status on the membership page. If you're not yet a member or you need to renew, check out our membership certificate offer.

Performance improvements

To increase performance on Drupal.org we've updated to the latest version of the Advanced Aggregator module (special thanks to u/mikeytown2). The latest updated includes aggregation of font from the Google fonts api, which should make a material difference in Drupal.org page render times.

Better spam moderation tools

A recent surge of spam attacks targeting Drupal.org has lead us to take another pass at updating our spam moderation tools. Spammers continue with a never ending escalation of tactics, and so we are constantly evolving our tools for managing spam. We've implemented some rate limiting protections as well as some new moderation views that will make it easier for us to bulk moderate spam. We'll be continuing with some of this work into July so that we can keep Drupal.org's home free from spam and productive.

Infrastructure

Infrastructure partner selected

In March we kicked off an RFP process to find a Managed Infrastructure Services vendor to partner with us to help maintain and improve the Drupal.org infrastructure. In June we reached a decision and have selected Tag1 Consulting as our partner. We're now working with Tag1 to audit our current infrastructure, policies, as well as monitoring and alerting systems as we kick off this relationship. Tag1 brings a tremendous amount of experience in Drupal infrastructure management as well as making Drupal performant at scale - and we're grateful to have them on board. With a partner on board to help us manage our infrastructure our internal team will focus on features and issues that support our mission.
———

As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who made it possible for us to work on these projects. In particular we want to thank:

If you would like to support our work as an individual or an organization, consider becoming a member of the Drupal Association.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra

One million downloads, one million thanks

Posted by jmolivas.com - 18 Jul 2017 at 15:20 UTC
One million downloads, one million thanks

It feels great to build a Drupal tool that has achieved more than 1 million downloads and helps people from different places around the world to create, build and deploy Drupal applications. It's been quite a journey, which took almost four years and required a lot of time and effort. It’s only fitting that I walk you through my Drupal Console journey.

I hope that taking you through my experience working on the Drupal Console will motivate you become part of a project, collaborate or take the first step. So here are the most important milestones.

The Beginning: The commit that started all

After been organizing a few hangouts and trying to decide to start a contributed project related to Drupal 8, David Flores pushed the first commit to the project repo. It was just a README.md file but every journey, even those that impact many people, start with one single step. That file marked the beginning of Drupal Console.

jmolivas Tue, 07/18/2017 - 15:20

Take the Survey on the Community Governance Summit

Posted by Drupal Association blog - 18 Jul 2017 at 13:28 UTC

I recently shared the community needs and potential strategies for evolving community governance, which resulted from the Community Discussions we held in person and online throughout April and May. You can find the webinar recording and written transcript, as well as the meeting minutes from all Community Discussions, at https://www.drupal.org/community/discussions.

Many community members who participated in these discussions agreed that the next step to take in this process is to hold a Community Governance Summit. However, we are not yet clear on where and when this event should take place, who should participate, and several other important details. I worked with community members to develop this survey so we can answer those questions.

Please take 5 minutes to take this community survey and tell us your thoughts about the Community Governance Summit. This survey will remain open until 11:59pm EDT on July 28, 2017. We will analyze the findings and report back on what we learned in a follow-up blog post by Friday, August 4.

Thank you for your time and participation.

How to add a Product Programmatically to Drupal Commerce Cart

Posted by Valuebound - 18 Jul 2017 at 12:32 UTC

In last two blog post we discussed the basics of getting started with Drupal Commerce and the steps of e-commerce products creation. As we move forward with our learnings, we will write about how we dealt with those. 

There is Business logic which demands few things out of the box where we create custom modules to aid a process. I came across a situation where we had to use Drupal Commerce module but the product was coming from the content type. Even though we had to import the product as commerce…

Drupal Business & Community Days Heidelberg 2017

Posted by Amazee Labs - 18 Jul 2017 at 05:37 UTC
Drupal Business & Community Days Heidelberg 2017

For the second time, around 100 people gathered in Heidelberg, Germany, for the 2-day Drupal Business & Community Days Heidelberg 2017 conference. Its unique concept combined two session tracks focusing on community and business topics. 

Josef Dabernig Tue, 07/18/2017 - 07:37 Drupal Business & Community Days Heidelberg 2017

Apart from sprints and BoFs, the two session tracks allowed attendees to switch between community and business focused sessions. The community track focused on sessions in English for a more international crowd, while the business track sessions were held in German and attracted more attendees from the DACH (Germany Austria Switzerland) region.

Here are some of my highlights from the conference:

Die Firma sind wir! - Dietmar „dietmarg“ Giegler, Luca Curella (Reinblau)

Die Firma sind wir! by Dietmar „dietmarg“ Giegler and Luca Curella was a talk about how Reinblau switched to holocracy. The cooperative of roughly 18 freelancers is using bi-weekly governance meetings moderated by a facilitator to allow for the improvement of the organisational structure by everyone involved.

 Verantwortungsvoll handeln und richtig darüber sprechen

Dr. Julia Schönborn (karmajob) in "Der ehrbare Kaufmann“ CSR: Verantwortungsvoll handeln und richtig darüber sprechen shared insights about how Corporate Social Responsibility (CSR) can be used as a holistic approach to focus all efforts of a company with regards to social responsibility.

I found it interesting that this approach has been mostly associated with big corporations in the past while smaller Drupal agencies, for example, also see their social responsibility extended to the contribution of open source code and providing a good working environment.

 Michael

A look into a possible Future for all of us: React, GraphQL and Drupal by Michael "schnitzel" Schmid from Amazee.io shared all the findings we gained from creating multiple decoupled websites based on React, GraphQL and Drupal.

If you are keen to find out more about the topic, the Decoupled Developer Days are taking place in New York August 19-20, 2017.

Die TrauMINTfrau – vom Traum zur Umsetzung - Renate Welkenbach

Die TrauMINTfrau – vom Traum zur Umsetzung by Renate Welkenbach allowed the attendees to collectively work on the challenging task of bringing more diversity into tech. 

Heidelberg Group

Along with these highlights, there were also some other inspiring presentations, and during the 2 days, Drupal Business & Community Days Heidelberg 2017 provided a great way to connect with the German and international Drupal community.

Together with regional experts and enthusiasts for digital and open source we were able to connect and have in-depth collaborations and exchanges in a relaxed environment.

I was also glad to be able to attend the Drupal e.V. meeting where Stefan Auditor (sanduhrs) and Marc Dinse (dernetzjaeger) were elected as new chairman of the German Drupal Association.

More pictures can be found in our Flickr album, and be sure to check out the #DrupalBCDays hashtag for further updates. See you again at DrupalCon Vienna or another regional camp in the near future!

Component based design with Paragraphs and Field formatters

Posted by PreviousNext - 18 Jul 2017 at 04:23 UTC

A common problem that I’ve faced, particularly in the last few years, is how to deliver the complex, component driven design that clients want while also giving content authors full flexibility with those components without creating an un-maintainable, or brittle product.

AGILEDROP: What are Drupal Mini Camps?

Posted by Agiledrop.com Blog - 18 Jul 2017 at 04:20 UTC
Remember when we have made a complete tour around the world to look at the Drupal Camps? If you don't, you can refresh your memories and find out which continent has the most Drupal camp activities. Besides that, we also highlighted the importance of attending such events. Drupal camps bring you many positive things. Lately, we came across a new term – Drupal Mini Camps. Let's see what they are. Almost a month ago we saw that Atlanta is organizing a Drupal event. Nothing special at first. Drupal Camp Atlanta has been there for the Drupal Community a long time. But with further reading,… READ MORE

July 17th, 2017 Symfony security fix in Security component (CVE-2017-11365) - Drupal not affected

Posted by Drupal core announcements - 17 Jul 2017 at 23:34 UTC

Symfony contacted the Drupal Security team about today's Symfony security release addressing an issue in UserPasswordValidator. This announcement is to reassure the Drupal community that Drupal 8 is not affected by this fix, as it does not make use of this security component. There is no Drupal 8 release scheduled for this, and there is no action you need to take on your Drupal site(s).

Drupal 8.4.0 will be released October 4; alpha begins week of July 31

Posted by Drupal core announcements - 17 Jul 2017 at 19:14 UTC

Drupal 8.4.0, the next planned minor release of Drupal 8, is scheduled for Wednesday, October 4, 2017. Minor releases include new features, usability improvements, and backwards-compatible API improvements. Here's what this means now for core patches.

The goal of the alpha phase is to begin the preparation of the minor release and provide a testing target for theme or module developers and site owners. Alpha releases include most of the new features, API additions, and disruptive changes that will be in the upcoming minor version.

Drupal 8.4.0-alpha1 will be released the week of July 31

In preparation for the minor release, Drupal 8.4.x will enter the alpha phase the week of July 31. Core developers should plan to complete changes that are only allowed in minor releases prior to the alpha release. (More information on alpha and beta releases.)

  • Developers and site owners can begin testing the alpha. (Note for Drush users: Drupal 8.4.x requires Drush 8.1.12.)
  • The 8.5.x branch of core will be created, and future feature and API additions will be targeted against that branch instead of 8.4.x. All outstanding issues filed against 8.4.x will be automatically migrated to 8.5.x once it is opened.
  • All issues filed against 8.3.x will then be migrated to 8.4.x, and subsequent bug reports should be targeted against the 8.4.x branch.
  • During the alpha phase, core issues will be committed according to the following policy:
    1. Most issues that are allowed for patch releases will be committed to 8.4.x and 8.5.x.
    2. Drupal 8.3.x will receive primarily critical bugfixes in preparation for its final patch release window. (Drupal 8.2.x and older versions are not supported anymore and changes are not made to those branches.)
    3. Most issues that are only allowed in minor releases will be committed to 8.5.x only. A few strategic issues may be backported to 8.4.x, but only at committer discretion after the issue is fixed in 8.5.x (so leave them set to 8.5.x unless you are a committer), and only up until the beta deadline.

Drupal 8.4.0-beta1 will be released the week of August 14

Roughly two weeks after the alpha release, the first beta release will be created. All the restrictions of the alpha release apply to beta releases as well. The release of the first beta is a firm deadline for all feature and API additions. Even if an issue is pending in the Reviewed & Tested by the Community (RTBC) queue when the commit freeze for the beta begins, it will be committed to the next minor release only.

The release candidate phase will begin the week of September 4, and we will post further details at that time.

See the summarized key dates in the release cycle, allowed changes during the Drupal 8 release cycle, and Drupal 8 backwards compatibility and internal API policy for more information.

As a reminder, we have until the start of the alpha to add great new features to Drupal 8.4.x. Several experimental modules have 8.4.x alpha deadlines:

  1. Workflows and Content Moderation (must reach beta stability)
  2. Media (must become stable to provide a stable API for contrib media modules)
  3. Settings Tray (must become stable)
  4. Place Blocks (must become stable)
  5. Inline Form Errors (must become stable)
  6. Datetime Range (must become stable)

Help is most welcome with issues on the roadmaps for the linked modules now for a great Drupal 8.4.0!

Dealing with Drupal 8 and a giant cache_render table

Posted by Jeff Geerling's Blog - 17 Jul 2017 at 18:19 UTC

There are a number of scenarios in Drupal 8 where you might notice your MySQL database size starts growing incredibly fast, even if you're not adding any content. Most often, in my experience, the problem stems from a exponentially-increasing-in-size cache_render table. I've had enough private conversations about this issue that I figure I'd write this blog post to cover common scenarios, as well as short and long-term fixes if you run into this issue.

Consider the following scenarios I've seen where a cache_render table increased to 10, 50, 100 GB or more:

DrupalCon Takeaways - Rachel Lawson

Posted by DrupalCon News - 17 Jul 2017 at 18:19 UTC

Oh! Hey there, my name is Piyush Jain and as a new staff member at the Drupal Association I wanted to learn what the community likes so much about DrupalCon. 

This week, I spoke with Rachel Lawson (rachel_norfolk), who has been part of the Drupal community for 11 years, and attended 6 DrupalCons.

Building a Membership site in Drupal 8

Posted by Freelock - 17 Jul 2017 at 18:02 UTC

Memberships are not all the same. Some memberships last a lifetime, others last a year, or a month. Some memberships are for an individual, others for a couple, others for an entire family.

Some memberships are for a particular time period -- the 2017 season, the 2017/18 school year, Summer -- others are for a particular length of time starting when you purchase it.

Drupal 8Drupal PlanetMembershipCustom DevelopmentCRM

Pages

Subscribe with RSS Subscribe to Drupal.org aggregator - Planet Drupal