All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
A day doesn't go by that someone isn't asking a question in Slack #migration about how to troubleshoot a specific problem with a tricky migration. Almost universally, these problems be demystified by using Xdebug and putting breakpoints in two spots in Core's MigrateExecutable. First is in the ::import() method where it rewinds the source and then processes it. The second place I regularly put a breakpoint is in ::processRow().heddn Wed, 10/24/2018 - 08:21
The Research and Development team at BBC (British Broadcasting Corporation) have been working on IP production for a number of years building a model for end-to-end broadcasting that will allow a live studio to run entirely on IP networks. During this period, several software applications and libraries have been built in order to prototype techniques, develop their understanding further and implement emerging standards. To do all these, they leverage Continuous Integration along with a number of tools to aid with Continuous Delivery of their software. Why is Continuous Integration a preferred option for large organisations like BBC?
Predates many of the Agile’s ancestors
A software development methodology like Continuous Integration (CI) can be of paramount importance for an efficient software delivery. Drupal-based projects can gain a lot with the implementation of CI leading to better teamwork and effective software development processes.
CI is older than many of the ancestors of agile development methodology. Grady Booch, an American software engineer, gave birth to the term ‘Continuous Integration’ through the Booch Method (a method used in object-oriented analysis and design) in 1991.
Booch, in his book called Object-Oriented Analysis and Design with Applications, states that:
The needs of the micro process dictate that many more internal releases to the development team will be accomplished, with only a few executable releases turned over to external parties. These internal releases represent a sort of continuous integration of the system, and exist to force closure of the micro process.
A software development methodology like Continuous Integration allows members of the team integrate their work frequently. It involves each of the team members integrating at least daily thereby leading to multiple integrations every day. Each of the integrations is checked by an automated build (that includes the test) for detecting integration errors faster.“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” — Martin Fowler, Chief Scientist, ThoughtWorks
Developers can frequently commit to a shared repository with the help of a version control system such as Git. They can choose to run local unit tests on their code before each commit as a mark of added verification layer before integrating. A CI service automatically builds and runs unit tests on the new code alterations for immediate identification of any errors.
With Continuous Delivery, code alterations are automatically built, tested and pushed to production. Continuous Delivery expands upon Continuous Integration by deploying all code alterations to a test environment and/or production environment after the build stage.Key practices that form an effective Continuous Integration
- Single source repository: A decent source code management system should be in place.
- Build automation: Automated environments for builds are a common feature of systems that ensure that you can build and launch your system using a single command.
- Self-testing: Automated tests in the build process can help in catching bugs swiftly and efficaciously.
- Daily commits: By committing to the mainline every day, developers can correctly build their code including passing the build tests.
- Integration machine: Regular builds should be happening on an integration machine and the commit should be considered done only if this integration build succeeds.
- Immediate fix of broken builds: The integral part of doing a continuous build is that if the mainline build fails, it should be immediately fixed.
- Rapid feedback: It is of consummate importance to keep the build fast and provide rapid feedbacks.
- Test environment: Always test in a clone of the production environment.
- Finding the latest executable: Anyone involved in a software project should get the latest executable easily and be able to run it for demos or exploratory testing.
- See the state of the system: Everyone should be able to see what’s happening with the system and the alterations that have been made to it.
- Deployment automation: You should have scripts that will let you deploy the application into any environment easily.
- At first, developers check out code into their private workspaces
- When performed, commit the alterations to the repository.
- The CI server monitors the repository and checks out alterations when they occur.
- The CI server builds the system, runs unit and integration tests, releases deployable artefacts for testing
- The CI server assigns a build label to the version of the code which was just built by it and informs the team of the successful build
- The CI server alerts the team members if the build or tests fail
- The team members immediately fix the issue
- The team continues to integrate and test throughout the project
- Check in frequently
- Do not check in broken code, untested code or when the build is broken
- Do no go home after checking in until the system builds
A development team uses CI software tools for automating parts of the application build and constructing a document trail. The following are examples of CI pipeline automation tools:
- CircleCI is a continuous integration platform. When connected to a Drupal site, alterations made in version control in code repository such as GitHub alert CircleCI to start the build of the application and execute predefined testing suite.
- Travis CI is similar to CircleCI which integrates with GitHub, Bitbucket, and other applications. It creates application builds and runs testing suites when code alterations are pushed.
- Jenkins is an open source automation server installed and handled by the user unlike platform services like CircleCI and Travis CI. It is extendable with plugins and works well with Git. It lets you do a wide range of configurations and customisation.
- The open source GitLab repository and platform can run unit and integration tests on several machines and can split builds to work over numerous machines for decreasing execution times.
- JetBrains TeamCity is an integration and management server for enabling developers to test code before they commit alterations to a codebase. It features Build Grids which allow developers to run several tests and builds for different platforms and environments.
Deferred integration is troublesome as it is an arduous task to predict how long it will take to do a project or even worse how far are you through the process. So much so that you are putting yourself in a blind spot at one of the critical parts of a project. One of the most significant merits of Continuous Integration is minimised risk. With CI, there is no long integration and it completely eliminates the blind spot. You will know where you are, what is working and what is not, and the outstanding bugs that you have in your system.Easy bug detection
CI does not entirely remove bugs but makes it easier to detect it faster. Projects with CI tend to have dramatically fewer bugs both in production and in process. The degree of this merit is directly proportional to how good your test suite is.Frequent deployment
CI promotes frequent deployment which lets your users get new features more rapidly, to provide more rapid feedback on those features and collaborate more in the development cycle.Continuous Integration for Drupal
DrupalCon Dublin 2016 had a presentation which showed how you can leverage the Jenkins 2 pipelines for implementing Continuous Integration/Deployment/Delivery for the Drupal site while taking care of the principles like Infrastructure as Code, Configuration as Code, DRY (Don’t Repeat Yourself) and Open/Closed principle (from SOLID principles).
The process that was followed in the presentation required pushing a commit into self-hosted (Gitlab) or private Github repo. It involved building the doc root from the various sources, deployment procedures, auto-tests on servers and everything was done in the same pipeline configured as separate stages.
It showed the auto-generation of deploy pipelines for each branch/state like development, staging or production configured. It utilised different approaches for governing code structure such as Composer-based workflow and ‘all-code-in-repo’ solution in the same doc root. Auto-checking that code was delivered to the server prior to the start of drush deploy procedures and testing.
Universal deploy script was used that will be useful for any project. Additional project-specific deploy scripts - DRY (or override) basic deploy script - was leveraged which could be useful when you delegate this part of the responsibility to the different team. You can control what drush commands or command options can be used for certain projects, that is, the project team can have their own deploy scripts.
Configuration as a code on both the Jenkins side and the Drupal side was performed. On the Jenkins side, all Jenkins jobs (pipelines) was stored as code in Git and regenerated in case of code alterations with the assistance of Job DSL. On the Drupal side, every configuration alteration was performed in code and then processed on Production servers during code deploys.
It showed auto-creation of URLs and databases on hosting platform based on multisite setup. It displayed automated backups before code deploys, copied whole sites inside doc root or between different doc roots with one click and added custom actions for offering additional functionality specific to the projects.
The Forrester Wave™: Continuous Integration Tools, Q3 2017 delineated the 10 providers that matter most and how they stack up.
A report on Markets and Markets stated that the CI tools market size is expected to grow from USD 483.7 million in 2018 to USD 1139.3 million by 2023 at a Compound Annual Growth Rate (CAGR) of 18.7% during the forecast period.
A study by Data Bridge Market Research states that major players operating in the global continuous integration (CI) tools market are Atlassian (Australia), IBM (US), Microsoft (US), Micro Focus (UK), CA Technologies (US), Cloudbees (US), AWS (US), Puppet (Oregon), Red Hat(US), CA Technologies (US), Oracle (US), Micro Focus (UK), SmartBear (US), Jetbrains (Czech Republic), CircleCI (US), Shippable (US), Electric Cloud (US), V-Soft Technologies (South Africa), BuildKite (Australia), TravisCI (Germany), AutoRABIT (US), AppVeyor (Canada), Drone.io (US), Rendered Text (Serbia), Bitrise (Hungary), Nevercode (UK), and PHPCI (Belgium) are among others.Conclusion
Software development can be drastically improved with the incorporation of Continuous Integration resulting in better team collaboration, reduced risk, and faster delivery. Drupal-based projects can reap the merits of CI tools. With Drupal being a huge perpetrator of digital innovation, implementing Continuous Integration in Drupal projects is viable.
OpenSense Labs has a pool of Drupal experts who have been a force to reckon with when it comes to enabling digital transformation dreams of enterprises with its suite of services.
Contact us at firstname.lastname@example.org to know how can you leverage continuous integration for Drupal projects.blog banner blog image Continuous Integration Continuous Integration for Drupal Continuous Integration tool Continuous Integration server Blog Type Articles Is it a good read ? On
We are honored to have been chosen as the only company from Jordan to be featured in Clutch’s 2018 Leading B2B firms in Africa and Asia list. Clutch is one of the world’s leading B2B networking platforms.
The list features 200 identified companies based on in-depth evaluation of 12 qualitative and quantitative factors.
Leading up to this award; we look back at 2018 and recognize the moments that enabled us to earn this recognition:
Drupal Community Recognition
Only one person managed to contribute more than Rajab Natshah towards the open-source community of Drupal.
Representing both Vardot and the Jordan Open Source Association; senior software engineer and good friend Rajab’s valuable contributions were recognized and appreciated by the Drupal open-source community.
Vardot has always valued the feedback of the open-source community and we shall continue to work hard towards advancing the principles of open-source and Drupal technology.
We are very proud of Rajab for putting Jordan on the open-source Drupal community map in 2018 make sure to follow him on Twitter!
Source: Dries Buytaert
Sustaining a reputation as a leading enterprise solutions providers and digital experience platform builders is a never-ending endeavor that relies on a team with a passionate drive to be the best.
2018 has been particularly eventful for Omar Alahmed who became a full-fledged Drupal 8 Grand Master back in July.
Acquia Certified Site Builder (Drupal 8)
- Muath Khraisat
- Ahmad Halah
- Omar Alahmed
- Yasmeen Abuerrub
- Rajab Natshah
- Mahmoud Zayed
- Sally Nader
Acquia Certified Developers (Drupal 8)
- Muath Khraisat
- Omar Alahmed
- Mahmoud Zayed
- Rajab Natshah
Acquia Certified Back-End Specialist (Drupal 8)
- Omar Alahmed (The First Acquia Certified D8 Back-End Developer in MENA)
Acquia Certified Front-End Specialist (Drupal 8)
- Omar Alahmed
- Mahmoud Zayed
It’s still early days, this list may yet expand before years’ end.
Working on new, interesting and rewarding projects with great clients was a blessing in 2018 as we get to be part of the development of great ideas and products.
Here’s a selection of our favorites:
The platform is quickly becoming the premier e-learning community for the Arab speaking market.
It's never too late to brush up on your knowledge or learn something new. Join a growing community of 80,000+ members.
A unique product that enables users to tell their life story or memoirs in a seamless manner.
Thanks to Drupal modules, The application features full cross-device optimization, secure e-commerce capabilities and the ability to dictate text via speech smoothly.
To learn more about how you can improve the lives of people who need your help, don’t hesitate to visit the platform here.
Case Study: UNRWA Donation Platform
Access to quality education is a universal right. Working with the Queen Rania Foundation on their latest education enablement initiative; the Queen Rania Award for Education Entrepreneurship is a project dear to our hearts.
If you are an entrepreneur or educator that has an idea to advance education in any manner; check here if your idea qualifies!
You still have 2 weeks before the deadline for submission arrives.
Case Study: Queen Rania Award for Education Entrepreneurship
The Middle East has seen more than it's fair share of hate and social injustice; which makes the Meshkat community initiative a positive step forward in rebuilding social cohesion within future generations.
Meshkat Community (مجتمع مِشكاة) is an initiative launched by PeaceGeeks in Jordan in 2017 which strengthens community cohesion and constructive dialogue in the Middle East North Africa (MENA) region by building the skills, networks, knowledge, and action of citizens.
The list is too long to mention but the effort to deliver is ongoing. We are currently working on awesome projects with the Saudi Research and Marketing Group (SRMG), Al Bawaba News, Queen Rania Foundation, United Nations Ops (UNOPS), ProEquest, Amman Stock Exchange and ICARDA.
Thanks to the valued feedback from the open-source community we were able to sustain frequent releases that enhance the performance of Varbase. Varbase is the ultimate CMS starter kit for Drupal projects.
During 2018; more developers and project teams adopted Varbase as their go-to solution to build effective digital experiences. Vardot is constantly maintaining and improving upon Varbase to guarantee that it delivers on the promise of enhancing Drupal project delivery by automating best practices and modules available.
Expanding Our Horizons
Success is collaborative. As such, we are always seeking to grow bigger and better by collaborating with organizations that match our passion for excellence.
Strategic partnerships are only strategic if they are the right partnerships, forged in a bid to achieve larger and common objectives.
In the end; the real reason why we are where we are today is our team.
Congrats to all the team members that enriched our expertise, knowledge and enhanced our ability to deliver to our clients even more.
Well done, Vardotters.
You earned this.
Official Clutch Release: Leading B2B Companies in Greater Asia and Africa Announced for 2018
Drupal has evolved significantly over the course of its long history. When I first built the Drupal project eighteen years ago, it was a message board for my friends that I worked on in my spare time. Today, Drupal runs two percent of all websites on the internet with the support of an open-source community that includes hundreds of thousands of people from all over the world.
Today, Drupal is going through another transition as its capabilities and applicability continue to expand beyond traditional websites. Drupal now powers digital signage on university campuses, in-flight entertainment systems on commercial flights, interactive kiosks on cruise liners, and even pushes live updates to the countdown clocks in the New York subway system. It doesn't stop there. More and more, digital experiences are starting to encompass virtual reality, augmented reality, chatbots, voice-driven interfaces and Internet of Things applications. All of this is great for Drupal, as it expands its market opportunity and long-term relevance.
Several years ago, I began to emphasize the importance of an API-first approach for Drupal as part of the then-young phenomenon of decoupled Drupal. Now, Drupal developers can count on JSON API, GraphQL and CouchDB, in addition to a range of surrounding tools for developing the decoupled applications described above. These decoupled Drupal advancements represent a pivotal point in Drupal's history.A few examples of organizations that use decoupled Drupal.
Speaking of important milestones in Drupal's history, I remember the first Drupal book ever published in 2005. At the time, good information on Drupal was hard to find. The first Drupal book helped make the project more accessible to new developers and provided both credibility and reach in the market. Similarly today, decoupled Drupal is still relatively new, and up-to-date literature on the topic can be hard to find. In fact, many people don't even know that Drupal supports decoupled architectures. This is why I'm so excited about the upcoming publication of a new book entitled Decoupled Drupal in Practice, written by Preston So. It will give decoupled Drupal more reach and credibility.
When Preston asked me to write the foreword for the book, I jumped at the chance because I believe his book will be an important next step in the advancement of decoupled Drupal. I've also been working with Preston So for a long time. Preston is currently Director of Research and Innovation at Acquia and a globally respected expert on decoupled Drupal. Preston has been involved in the Drupal community since 2007, and I first worked with him directly in 2012 on the Spark initiative to improve Drupal's editorial user experience. Preston has been researching, writing and speaking on the topic of decoupled Drupal since 2015, and had a big impact on my thinking on decoupled Drupal, on Drupal's adoption of React, and on decoupled Drupal architectures in the Drupal community overall.
To show the value that this book offers, you can read exclusive excerpts of three chapters from Decoupled Drupal in Practice on the Acquia blog and at the Acquia Developer Center. It is available for preorder today on Amazon, and I encourage my readers to pick up a copy!
Congratulations on your book, Preston!
Before beginning with the What and Why of Composer, let’s understand the difference between “Upgrade” and “Update”. Upgrading a Drupal [...]READ MORE
Oliver Davies: Debugging Drupal Commerce Promotions and Adjustments using Illuminate Collections (Drupal 8)
Today I found another instance where I decided to use Illuminate Collections within my Drupal 8 code; whilst I was debugging an issue where a Drupal Commerce promotion was incorrectly being applied to an order.
PHP 5.6 will officially be no longer supported through security fixes on December 31, 2018. This software has not been actively developed for a number of years, but people have been slow to jump on the bandwagon. Beginning in the new year, no bug fixes will be released for this version of PHP. This opens the door for a dramatic increase in security risks if you are not beginning the new year on a version of PHP 7. PHP 7 was released back in December 2015 and PHP 7.2 is the latest version that you can update to. PHP did skip over 6; so don’t even try searching for it.
Drupal 8.6 is the final Drupal version that will support PHP 5.6. Many other CMS’s will be dropping their support for PHP 5.6 in their latest versions as well. Simply because it is supported in that version does not mean that you will be safe from the security bugs; you will still need to upgrade your PHP version before December 31, 2018. In addition to the security risks, you have already been missing out on many improvements that have been made to PHP.What Should You Do About This?
You are probably thinking “Upgrade, I get it.” It may actually be more complicated than that and you will need to refactor. 90-95% of your code should be fine. The version your CMS is may affect the complexity of your conversion. Most major CMS’s will handle PHP 7 right out of the box in their most recent versions.
By upgrading to a version of PHP 7, you will see a variety of performance improvements; the most dramatic being speed. The engine behind PHP, Zend Technologies, ran performance tests on a variety of PHP applications to compare the performance of PHP 7 vs PHP 5.6. These tests compared requests per second across the two versions. This relates to the speed at which code is executed, and how fast queries to the database and server are returned. These tests showed that PHP 7 runs twice as fast and you will see additional improvements in memory consumption.How Can Mobomo Help?
Mobomo’s team is highly experienced, not only in assisting with your conversion, but with the review of your code to ensure your environment is PHP 7 ready. Our team of experts will review your code and uncover the exact amount of code that needs to be converted. There are a good number of factors that could come into play and affect your timeline. The more customizations and smaller plugins that your site contains, the more complex your code review and your eventual conversion could be. Overall, depending on the complexity of the code, your timeline could vary but this would take a maximum of 3 weeks.Important Things to Know:
- How many contributed modules does your site contain?
- How many custom modules does your site contain?
- What does your environment look like?
The post The End of PHP 5.6 is Coming! appeared first on .
A full rebuild of a website can be a time consuming and expensive process. Upcycling is an incremental approach to relaunching existing websites. This blog will explain more about what upcycling is and why it might be the right choice for your websiteJosef Dabernig Tue, 10/23/2018 - 19:18
Most websites will be rebuilt every three to six years to keep up with online trends, because of technical debt, or simply to refresh their appearance. At Amazee Labs, we have helped many clients transition from their legacy web systems onto Drupal 8 but not everyone is ready to do the move all at once. This is where upcycling can come into play.
As upcycling is intended to be an incremental approach it might not be suitable for every use case or every client. Upcycling de-prioritizes the “one-big-bang-launch-wow-effect” and allows us to partner with our clients to meet one primary goal: reduce time to market for big website improvements and maximising the value of time spent.
When to upcycle?
If you have a well-established web system that has been operational for several years, and you aren’t ready to spend the time and money to do a full rebuild, upcycling might be the answer.
As you can see, upcycling can be performed at any stage of an existing web project. Depending on the size of the upcycling project, we might transition from the maintenance and extension mode back to implementation. Alternatively you might do a smaller upcycling project within the maintenance & extension cycle. Large upcycling projects will often mean moving all the way back into a conceptual consulting & discovery mode before we start implementing new features or functionality.
What to upcycle?
We’ve designed an upcycling questionnaire to guide the conversation with the customer with regards to different aspects of the website. Although these are common areas for upcycling, we use this questionnaire as a starting point to discuss what will be the best fit for each project.
For each of these upcycling areas, we have a set of questions to validate the potential and& need for upcycling. For example, when we talk about designwith regards to design we would ask if the look and feel of the website is perceived as outdated or if there are any inconsistencies within the current design implementation.
If we identify an area that could benefit from upcycling a potential for upcycling in such area is identified, we will provide a set of recommended steps for improvement. In this case that might be a design refresh, establishing a design system, or rebuilding the frontend.
We also provide upcycling case studies to show our clients what is possible with upcycling, and help build on their ideas to improve their website without starting from scratch,
How to upcycle?
Upcycling demands that we are in a position to split things up.
An example is Sonova.com. The main website has been running on Drupal 7 since 2014. Last year, we started relaunching individual country pages using Drupal 8. These new pages allow the content managers on the client’s side to benefit from the better editorial features of Drupal 8 early on without needing to wait for a relaunch of the entire website. Gradually we keep relaunching country page by country page on Drupal 8.
Sonova Country Page Version in Drupal 7
Sonova Country Page Version in Drupal 8
The next step in upcycling this site will be a relaunch of the main website on Drupal 8. When we are ready for that step we can build upon the incremental steps we started for the country pages.
As well as the additional editorial features, we also worked with the client to choose a different Drupal theme. . This means sites running on Drupal 7 feature a different design than the sites running on Drupal 8. So instead of merely optimizing for consistency across all country pages, together with the client, we chose to allow to innovate and bring newer design versions to the local markets without waiting for the relaunch of the whole site.
How does upcycling relate to decoupling?
If your site has some complex backend logic that you don’t want to rebuild but you are eager to relaunch the frontend, upcycling could be the solution. Usually, we would relaunch the frontend within Drupal’s theme layer. But in certain cases, it makes sense to relaunch the frontend as a decoupled site and then integrate the existing backend. We recently did this for a customer that wanted to get started with Drupal 8 but had some complex Drupal 7 Backend logic that needed to be maintained.
On the other hand, if the backend really needs an overhaul and you want to keep the existing frontend without rebuilding it, upcycling could work for that too, after decoupling the backend.
Decoupling your architecture will enable you to upcycle individual parts and bring value to the end user faster but it also comes at a price of added complexity. In the end, it’s important to compare the advantages and disadvantagesPros of upcycling Cons of upcycling
Get the most out of your existing website infrastructure
Benefit from user experience, design or frontend performance improvements without the need to wait for a big relaunch
See your investments as quickly as possible
Potentially added complexity when maintaining two systems at once.
Potentially inconsistencies in the appearance if sections are upgraded separately.
Partly you need to invest into a legacy platform rather than spending everything on the new one
More details on upcycling can be found in this presentation.
What’s your experience & challenges when it comes to upcycling? Do you have an existing project that you would like to improve? Let us know in the comments or reach out via the contact form.
Here is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll investigate Termcase, a module which formats the capitalization of your taxonomy terms.
In the video below we will show you how to create an interactive and informative content using based on a couple of xls files and a handful of images using just CKEditor wysiwyg.
Our goal is to create a demo article with info on emperor pinguins, containing an interactive chart, a map and a gallery. For that we are using just functionality provided by VisualN modules pack (with a couple of generic dependencies).
The structure of xls files is as follows (the last screenshot also represents images used):Excel file containing colonies demo data Excel file containing colonies demo coordinates Images for colonies demo gallery
Each xls file contains a plain data table. The first row is used for data keys. Generally it can contain any keys - remapping is shown in the video. Actually remapping is required only for the first demo_data.xls file, since data_coords.xls keys already coincide with those used by LeafletMapBasic drawer.
Autumn is in the air… and part of the weKnow team is heading to BADCamp18, each one of them excited to share experiences, our team culture and contribute to strengthening ties among the members of the Drupal community.
This is a very special BADCamp edition as it sets a milestone in weKnow’s journey. Back in 2011, this was one of the first Drupal events that we attended in the USA. This year we increased the number to 8 attendants and we proudly became one of the event’s sponsors.marketing Tue, 10/23/2018 - 08:04
We are looking forward to seeing you and are excited to share some last minute logistical details and tips for making the most of your time at BADCamp.But wait: I’m still looking for a hotel room. Anything left??
Hotels are pretty booked in Berkeley but we checked with The Graduate and they still have some rooms left.
Give their reservation number a call at (510) 845-8981 and you’ll stay with at least 50 fellow BADCampers!Where is everything? Where do I go?
Check out the Event Timeline to find out what is happening when.
Check out the Venues page to see what is happening where.
Central BADCamp registration opens at 8:30 am each morning on the 3rd Floor of the MLK Student Union Building.
If you are attending the Nonprofit or Backdrop Summit, badges will be available at the Marsh so no need to stop by central registration in the morning. Be sure to come by the main BADCamp space at lunch break or after your summit to say hi!
Map to Marsh Art Center
2120 Allston Way
Berkeley, CA 94704
As always, BADCamp will provide an endless supply of coffee, tea and water.Wednesday & Thursday
All Trainings & Summits will have light snacks in the morning.
For lunch, head outside to discover some of Berkeley’s best food!
Stop by the Sponsor Expo on Thursday for speciality coffees.
Parking at Berkeley can be extremely challenging. Consider taking public transportation whenever possible.Anything else to know?
Wear good shoes! You will do a lot of walking.
Bring layers, or donate at the $100 level and you’ll get an awesome 2018 t-shirt, cool BADCamp socks, and a cozy BADCamp hoodie!
The BADCamp Contribution Lounge is open all 4 days of camp from 9:30am! We welcome and encourage you to participate! See the link for the location.
Did we mention the outside activities? At night?
Bring something warm and maybe even a hat and gloves for the night time activities!
BADCamp is 100% volunteer driven and we need your hands! We need stout hearts to volunteer and help set up, tear down, give directions and so much more! If you are local and can help us, please sign up on our Volunteer Form.Our biggest needs:
Session Monitors (sign up for ones you are already in!)
Trainings (sign up for ones you are already in!)
A BIG thanks Platform.sh, Pantheon & DDEV and all our sponsors who have committed early. Without them this magical event wouldn’t be possible. We are also looking for MORE sponsors to help keep BADCamp free and awesome. Interested in sponsoring BADCamp? Contact email@example.com or firstname.lastname@example.org.
Would you have been willing to pay for your ticket? If so, then you can give back to the camp by purchasing an individual sponsorship at the level most comfortable for you. As our thanks, we will be handing out some awesome BADCamp swag as our thanks.See You At BADCamp!!
Sometimes you may need to import data from a CSV file into Drupal.
We've spoken with OSTraining users who need to import from another CMS, and uses who need to import from a business spreadsheet.
There is no easy way do this import using the Drupal 8 core. To import your data from a CSV file, you need to install and enable the Content Import module.
In this tutorial, I'll walk you through the process of importing data with Content Import.
We made many important improvements to Drupal Commerce over the summer, including an improved promotions UI, BOGO offers, and product category conditions in the 2.8 release and full list price support with the 2.9 release. After a long sprint to the finish, we’ve now finally released 2.10, one of our largest releases to date that resolves 39 issues and feature requests.Product administration improvements
Six years ago we released the first stable version of Commerce Kickstart 2.x and the new (at the time) Inline Entity Form module, which allowed us to manage multiple product variations from a single product page form for the first time. Since then, Inline Entity Form has become a popular Drupal module and a recommended way to manage products in Drupal 7. When we started developing Commerce 2.x for Drupal 8, we ported over Inline Entity Form and the previous approach to managing products, but now we’re ready to take another step forward to advance the usability and performance of product management.
As of the 2.10 release, product variations are managed on their own tab of the product page form. This follows the same UI pattern we established for coupons within the promotions UI.
Moving variations to their own tab allows us to extend the UI in future releases, specifically to add bulk operations for tasks such as price updates, image replacement, and even the creation of a full set of variations. We foresee other modules adding their own elements to the tab, like the Commerce Pricelist module adding a “Prices” dropbutton item to provide quick access to every price for a variation on multiple price lists.
Having variations on a separate tab would be a bit much for products that always only have a single variation, so we’ve made sure to accommodate that use case in the new version. Each product type’s settings form includes an “Allow each product to have multiple variations.” option that when disabled reverts to the inline editing experience for products of that type.Query access filtering
If you create a new role for your merchant and only give it the “Book: View products” permission, you’d expect users with that role to be able to book products but no others. In Drupal 7, our solution for this was a generic query access API in Drupal Commerce itself that filtered entity loading queries based on user permissions.
To achieve this same result in Drupal 8, we've rebuilt this API and added it to the recent 8.x-1.0-rc1 release of the Entity API module. Commerce is now using it for administrative listings of products, orders, and stores. The API adds a QueryAccessEvent to allow modules to alter the access conditions, making it possible to apply further filtering (e.g. only show the user’s own store). Next we will extend the filtering to Search API to filter customer facing listings.User-driven API improvements
Over 4,000 websites have launched on Commerce 2.x in the past year, pushing us up over 6,000 in total. As developers launch their projects, we keep our lines of communication open to hear about all the things that annoyed or hindered them, and we work to improve our APIs as a result. Several examples that made it into this release include:
- #2856586: Add an "order paid" event
- #2959336: Add a "path" field to stores
- #2804227: Add getTotalPaid() and getBalance() methods to orders
- #3005796: Improve the DX of overriding the PaymentInformation / PaymentProcess panes
- #3003832: PaymentProcess needs to take the order balance into account
(Note that as a result of the last two, if you have overridden the PaymentInformation or PaymentProcess panes on your site, you will need to update them for the new release.)
We love to hear stories of the great things you’re doing with Drupal Commerce, and we’d also love to improve the core APIs and data model to better support you, too. Feel free to join us and hundreds of other developers in the #commerce channel on Drupal Slack for real-time discussion or post your proposals directly to the issue queue for discussion.
Lately, we've been using Gatsby with Drupal for projects where we need it decoupled.
Gatsby is a unique project. It's most often evaluated as a static site generator compared to the likes of Jekyll and Hugo. While Gatsby can generate a static website, it's more accurately described as a content mesh.
Gatsby uses GraphQL to pull in one or more sources to generate site content. There is a large list of Gatsby source plugins including: Drupal, WordPress, YouTube, Twitter, Hubspot, Shopify and Google Sheets just to name a few. It's optimized for blazing fast performance. Since it's built using React, it can be used to build hybrid sites. Along with generating static pages it can also render client-side content. It can pull in dynamic data, add password protected content and take advantage of features typically not found in static generated sites.
Similar to Drupal, Gatsby is open source. It has a devoted and ever-growing community, with an expanding plug-in library which makes building your site even easier.
With this combination we can leverage Drupal as a content authoring platform and utilize Gatsby to render the frontend.
The screencasts below show how quickly you can configure a Drupal 8 website to pair with Gatsby.
With our Drupal 8 website set up, the next step is to configure Gatsby to pull the Drupal site's content.
In my next blog, I'll be covering how automate your Drupal to Gatsby content deployment to Netlify.
Download a Transcription of this Screencast
Agiledrop.com Blog: Janne Kalliola: Organising CEO dinners, Drupal Business surveys and local and regional DrupalCamps
This week we talked with Janne Kalliola. Janne does not code, but he is a very active Drupal community contributor. Learn about CEO dinners he helps organize and what would he be working on, if he had an extra day between Thursday and Friday.READ MORE