- be more transparent in our development approach and design decisions
- incorporate more community knowledge and opinion in our codebase
- accept & acknowledge more community-contributed code more quickly than ever before
What is the Magento 2 “Developer Release Candidate”?
The Magento 2 Dev Release Candidate (RC) is one of the development milestones which we announced almost a year ago at Imagine 2014 along with the Magento 2 Developer Beta and Merchant Beta. Dev RC represents the following:
- A completed platform architecture in which there will likely be no major architectural shifts between now and the general release in Q4 of 2015
- Incorporation of feedback from the awesome Developer Beta participants around the world (including feedback from two separate in-person developer forums with participants from four continents)
- On-time completion of the Developer Beta period
As an interested developer, what should I do now?
If you are already involved in the discussions on GitHub, Twitter, email, etc. please continue to play with each release and provide your feedback, features, and fixes! If you aren’t, well… time’s a-wasting! The production versions of Magento 2 will be released this year. There is no better time than right now to install Magento 2, explore the improved architecture, and even contribute to the codebase. That’s right; just because the Dev RC is here doesn’t mean that we no longer need developer feedback. In fact, we expect to receive more feedback, because now is the time to start porting Magento 1.x extensions and custom code. Doing this will put you ahead of the curve for when Magento 2 becomes generally available (GA), and it may even result in you helping to improve the Magento 2 core.
What is Magento doing between now and Merchant Beta?
The developer community doesn’t get to have all the fun! Now we (Magento) get focus on porting our own code into the Magento 2 idiom, much as we did for the Magento_Customer module for Developer Beta. In addition to this, we will continue to incorporate community feedback and contributions, and we’ll be spending a substantial amount of time on performance enhancements – something which will proceed up to and after GA. Prior to GA expect to see new, exciting changes to checkout and admin UX.
Continue to connect with us:
(reblogged from my post on the Magento blog)
The best aspect of the thriving Magento ecosystem of merchants, developers, partners and freelancers is the incredible collaboration and sharing of ideas and experiences from around the world. The Magento Forum has been an important gathering place and resource for the community, but it has not kept pace with our demands, particularly around controlling spam. We’ve implemented a fabulous new technology and we are pleased to report that we are launching a new Magento forum today; open to all users globally, with the following new functionality:
The newly launched Magento forum is an open, free-form community that includes members with wide-ranging technical skill levels and broad regional/global eCommerce experiences. Any merchant, small or large, or any developer, junior or experienced, can connect with the diverse Magento user base to share ideas, get support, and learn from other’s experiences. While other options such as StackExchange continue to be good sources of technical information, this new forum is the only Magento-managed community resource, which serves merchants and developers alike.
Accessing the new forum is easy, as it is seamlessly integrated with your magento.com account. The new forum features dedicated spam fighting tools and is monitored by experienced moderators. Enhanced features such as the ability to vote on answers as well as to choose one “accepted solution” for a given question will help forum members find the best solutions now and in the future. There are also several sub-forums dedicated to non-English languages, which ensures that this is a great resource for regional and global eCommerce information.
While this forum is a great resource for all Magento users to share their experiences and support each other, the success of the forum depends on active participation from the community. It is your opportunity to give back to the community and share your expertise and insights.
Join the forum today and contribute to the dynamic community that is Magento!
On a personal note, I’d like to recognize the tremendous effort of Piotr Kaminski (@piotrekkaminski). In addition to his product management duties, Piotr coordinated with several teams internally and externally over several months to bring the new, improved Magento forums online. It’s a privilege to work with someone like Piotr who embodies the best of the Magento community and works so hard for the benefit of all.
I just read an amazing post about someone surviving anxiety, and it’s from a very unexpected place: Adam Culp’s blog. Adam is many things: sharp developer, Zend consultant and developer relations personality, and PHP Sunshine organizer. Adam is also an avid runner. From the first time I met him I was impressed by his appearance of effectiveness, togetherness, and health. He might be surprised to know that this is how I “see” him, but I suspect I’m not the only one. I personally draw inspiration from him anytime I’m out for a run myself (literally I think about my projection of Adam and measure myself against that; I should also mention that I am inspired to run for health and enjoyment by my colleague Vinai Kopp and by my wife Tracey). My running is teaching me two things. One is to “push through” – to go beyond a point when I want to give up short of a goal. The other is to pay attention and take a break when I need it lest I end up hurting myself.
Imagine my surprise to read Adam’s post in which he talks about being at the helm of a failing business, smoking packs of cigarettes each day, and succumbing to hospital-grade anxiety attacks. As someone who spent most of my early years plagued by anxiety attacks, I was left in shock and in tears reading his post today. My idol of programming & health has been through an amazing transformation from someone I suspect wouldn’t recognize. It’s always good to have one’s assumptions challenged – there’s a lot to be learned in those moments.
I encourage everyone to read Adam’s brief, powerful post. Even if you are not dealing with crushing anxiety, it’s certain that you know someone who is. It’s a terrible thing to experience, and it’s a wonderful thing to be past, though I’m always worried that it’s waiting for me in the wings – one never fully recovers from it, I suspect.
A tip of the hat to the supremely wonderful Cal Evans for tweeting the post.
*Didn’t really damn near kill him, but that’s the feeling. If he’d kept going on the same way though it might have.
The doors on the Mighty Orange Towers continue to open up. You’ll notice a new tag at the Magento 2 repo on GitHub:This tag is Magento’s marker for tasks with which we want community help! (Teaser: this is part of a bigger initiative around community collaboration, but more on that later.)
There are currently three issues marked as “up for grabs”:
- #1011 – Generating online HTML from PHP Doc for Magento 2
- #1012 – Eliminate XSD relative paths
- #1013 – Refactor code so modules/themes/language packs can exist under different directories
So, check ’em out (ha!) and get cracking. If you are planning on working on any of these issues, it might be wise to drop a comment on the issue’s discussion thread to coordinate with other community members. No need to duplicate efforts!
It’s no secret that PayPal has been, is, and continues to be an important part of Magento’s value to eBay Enterprise. The benefit extends to the merchants which provide PayPal payment methods to their customers, as there are plenty of data which demonstrate improved conversion rates with the Express Checkout shortcut in addition to a mosaic of other benefits when various PayPal methods and options are added to the mix
So, the benefits are real. From my past experience as a full time developer though I recall a couple of pain points. For example, PayPal’s various payment methods had unclear naming conventions as well as uncertain regional and functional limitations. It was therefore hard to know which PayPal payment method(s) to recommend for clients. I also recall some pain points with the integration itself (especially when IPN was involved). There are several discussions online which indicate that integration difficulties exist for others as well.
I’m happy to report that the landscape for both PayPal as well as the Magento + PayPal integration has been improving. Within the last year and a half PayPal has stepped up their game in terms of internal tech, account provisioning, and ease of sandbox testing. (Sidebar: PayPal even has a Head of Open Source and an entire suite of open source libraries. Add Braintree to the mix, and it’s clear that developers are a focus for the new PayPal.) And as a member of Magento’s Small Business team, I can also share that there is dedicated, ongoing effort to understand and resolve integration issues. This effort along with effort from Magento’s Product team have resulted in improvements to Magento’s integration as well as improvements among various third-party checkout integrations in order to fix and optimize Magento’s PayPal checkout flow.
However, we want to ensure that we understand any lingering issues as well as issues which were resolved by an upgrade. We’re also eager to hear about any Magento + PayPal success stories. So, please share your Magento + PayPal experiences with me via email, leave a comment on this post, or chat over at Reddit on /r/Magento. The experiences which you all share with me will directly affect Magento’s success now and in the future. I will likely keep emails and comments internal to eBay, so feel free to get deep but please don’t post credentials or anything sensitive. I may not be able to send a personal response to everyone, but please know that all of your messages will be used for the benefit of Magento and PayPal. Also, we may follow up with you to get more information about your experience.
Magento 2 Engineering Lead Max Yekaterynenko announced last week that the we would soon accept public pull requests on the Magento 2 GitHub repository. I’m delighted to share that the first pull requests have been now been merged! Tobias Zander has the honor of being the first community member with a merged pull request (PR) – one which cleans up a funny copy-paste error. I also had a PR merged to correct a misspelling of a certain name in the core code. While these first two merged PRs offer purely cosmetic improvements (and allowed us a final test of the new contribution model), they represent a new, exciting reality for Magento development: the community now has the ability to contribute directly to the Magento 2 codebase, and this collaboration takes place in full view of everyone – just as one would expect of an open source software.
How does it work?
Contributions to the Magento 2 codebase are done via GitHub using the fork & pull model. This contribution model has contributors maintaining their own copy of the forked codebase (which can easily be synced with the main copy). The forked repository is then used to submit a request to the base repository to “pull” a set of changes (hence the phrase “pull request”). The excellent GitHub interface has a GUI for doing all of this and even includes a discussion panel for each PR which allows everyone to see the reason why a PR is or is not merged as well as the ability to add to the discussion. GitHub also has a very good primer on pull requests under their help site.
Contributing to Magento 2 on GitHub
As mentioned, there are two essential actions in order to submit a contribution. First, fork the magento/magento2 repository under your own free GitHub account (or collaborate with someone else who has done this). Once you have a forked repository to use, you can create PRs based on changes made to that fork.
Forking a repository on GitHub is easy:
- Create or log in to your free account on GitHub
- Navigate to the Magento 2 repository on GitHub
- Click the “Fork” button at the top right:
- Clone the repo into your development environment, get the app installed, and start playing!
Creating a pull request is also easy:
- First, check the existing PRs and make sure you aren’t duplicating others’ work!
- Create a feature branch for your changes and push those changes to the copy of your repository at GitHub (this is the best way to organize and even update your PR)
- In your repository, click the pull request icon at the right, and then click the green “New Pull Request” button:
- Ensure that the “base” (the left side) is set to magento:develop and the “head” (the right side) is set to the appropriate branch/commit/etc.:
- Review the changes, then click the green “Create pull request” button, fill out the form, and click the “Create pull request” button again to submit the PR – that’s it!
As a reminder: remember to make your magento/magento2 pull request to the “develop” branch. I forgot to do this with my first PR and now I can never visit Kiev ;-)!
After submitting your PR you can head over to the magento/magento2 repository’s Pull Requests panel to see you PR along with the others. Your PR will undergo automated testing, and assuming it passes, will be up for consideration by the core team for inclusion in the Magento 2 core.
Additional notes about contributions:
- Contributions must adhere to Magento coding standards
- PRs must be accompanied by a description of their purpose
- PRs which include new logic or new features must be submitted along with unit/integration test coverage (we will be releasing more information on writing test coverage in the near future)
- For large features or changes, please open an issue here and discuss first. This may prevent duplicate or unnecessary effort, and it may gain you some additional contributors.
- PRs which include new features must be submitted along with a proposed documentation update as well (see below)
Contributions to documentation
Magento 2 documentation is also available for update on GitHub via the same fork & pull model. In fact, it’s easy to create and propose changes or additions to the documentation by using GitHub’s built-in editor – no need to download the forked repository to work on it. For more information, see my buddy Bradburn Young’s recent guest post on Alan Kent’s blog. The big thing: make pull requests to the develop branch, just like you would for the Magento 2 codebase.
A note about Magento 2 development environments
If you’ve been a Magento developer for a little while, please note that there are a number of architectural and environmental differences between Magento 2 and Magento 1.x – including higher minimum versions for PHP and MySQL – which may require a new development environment configuration in order to work with Magento 2. If you need to continue supporting an incompatible development environment for current / legacy projects, virtualization is a popular, maintainable, and increasingly simple option to have a separate execution environment for Magento 2. There are several resources which have information to get you up and running with virtualization:
- Alan Kent‘s article, “Reducing Magento 2 Install Pain Through Virtualization”
- Ryan Street‘s ryanstreet/magento2-vagrant repo at GitHub
- Rolando Granadino‘s rgranadino/mage2_vagrant repo at GitHub
I will certainly add to this list as time goes on; feel free to comment with links to other resources which you find helpful – and let me know about any resources which are less than helpful as well so we can work with the authors to get them corrected.
We’ve been working hard to get Magento 2 ready for contribution, and there has been a lot of excitement internally to see this become a reality. Now it is up to the community to make the most of our open source contribution model. The Magento 2 Developer Beta closes in a few short months, and Q4 of 2015 will be here before we know it as well. Everyone’s involvement along the way is critical to making sure that Magento 2 is the best successor to Magento 1.x, one which will serve us well in the years to come. Onward and upward!
Well folks, the Magento 2 Dev Beta is finally here, and just in time for my birthday! Let’s pretend that all of the hard work, public and private deliberation, as well as the diligent effort by members of the Product, Engineering, and Marketing teams is somehow my birthday present to you all. Enjoy! Read below to find out what you need to know.
What is Magento 2?
Magento 2 is the still-in-development successor to Magento 1.x. The goal for Magento 2 is to take the experience of thousands of developers building eCommerce solutions with Magento 1.x and incorporate this architectural, functional, and customization experience into the core code?. Some of the best features of Magento 1.x (declarative configuration, layout XML, and modularity to name a few) are realized in Magento 2, but with refactored implementations based on collective experience. We’re also making sure that Magento 2 is built for now and for the future through enhanced testability, service contracts for a more stable API, semantic versioning and utilization of Composer, all with scalability and performance in mind. For me the best and most important aspect of Magento 2 is that we are building it in close collaboration with the community via a new and much-improved GitHub contribution process, described below.
What is this Developer Beta?
Developer Beta, which runs from December 18, 2014 through March 2015 is the chance for developers of all types (core, independent, solution partner, merchant, and extension developers) to have a say in the foundation of Magento 2. It is the time and the process through which the underlying architecture of the Magento 2 eCommerce application is amended, vetted, and finalized. It is imperative that your voice be heard even if you are relatively new to the world of Magento. For old hats and newbies alike we’ve built a brand new Developer Hub which should serve as your one-stop shop for information about Magento 2 development. Once you’ve checked that out, head over to the official Magento 2 GitHub repository to look at the code and conversations. If you’re new to Magento, spend some time familiarizing yourself with the community there, download the code, and start contributing when you’re ready – just fork the repo and submit pull requests! You can also view Magento 2 documentation at a brand new site and contribute to it via a separate separate GitHub repository (HUGE kudos to the technical writing team for conceiving this… and for learning git!). We said we were committed to improved collaboration and more transparency; it is my hope that these long-desired changes demonstrate our commitment to our community.
What if you have feedback or a question about Magento 2?
All feedback (e.g. “Magento 2 should/shouldn’t do/include/use…”) and most questions (e.g. “Should Magento 2 do/include/use…”) regarding Magento 2 should be added to the “Issues” section of the Magento 2 repository on GitHub. It’s simply the best place to aggregate and archive feedback for ourselves and for everyone in the community, and it is the only place where Magento engineers will be monitoring issues, requests, and contributions.
However, if you have a question about Magento 2 that is not intended as a contribution (e.g. “How do I get Magento 2 up & running locally?” or “How do I create an extension?”), you should first try to find a solution by checking the Developer Hub, the Magento 2 documentation, or the installation guide. If after consulting these resources you are still having a problem, you should check for a solution at the Magento StackExchange site.
What is the Magento StackExchange site, and how do you use it?
The StackExchange question and answer platform which encourages clear questions and answers (as opposed to a general discussion forum). Magento SE is a community-created and community-maintained place for technical questions and answers. It was started by several community members (myself included) almost two years ago (before I joined Magento) and is frequented by top-notch developer community members.
To be a responsible member of the Magento SE, you should do two things before posting a question. First, try to solve on your own, because it is always evident when someone has not tried to help themselves before posting, and these questions (e.g. “How do I install Magento?”) are often ignored or deleted. Second, search for your question to see if it has been asked or answered; if it has, vote up the question and the solution, and if it hasn’t, go ahead and create a new question. Post all relevant details, being sure to include the version number and whatever steps you took to attempt to solve your question.
Finally, please note that the Magento SE site is not “officially” monitored by Magento. Again, if you have Magento 2 feedback which you want the core team or other Magento employees to consider, please post to the Magento 2 GitHub repository.
If you have some feedback or a question which doesn’t seem to fit at GitHub or on Magento SE, I encourage you to interact with your fellow community members and Magento employees via Twitter, IRC (#magento on Freenode), and in person at meetups and events. I can be reached on Twitter at @benmarks, via email at email@example.com, and out in the world at official Magento events such as Imagine and MagentoLive, at unofficial, community-run Magento events such as Meet Magento, and at general PHP/open source/eCommerce events all over the world. I’m always eager to meet and learn from new folks and to talk about the best open source eCommerce platform on the planet.
Well, here we are, finally: the first of many monthly updates. I’ll start by stating that I have two goals for these updates:
- Inform the Magento community about the things & thoughts that are happening inside my head as well as inside the mighty orange towers
- Give some additional visibility to the things & thoughts which are happening within the community itself
That said, by no means should I or these reports be considered a final/ultimate voice of either the community or of Magento itself. Magento is different from a lot of software & service companies in that our community has direct access to various people in the organization, which includes talking with our developers and project managers via GitHub and Twitter. You can find me on Twitter at @benmarks and you can send me email at firstname.lastname@example.org.
Many of you don’t know me, or don’t know much about me. For the past six years I’ve served as a Magento developer, educator, certification consultant, and active community participant. I joined Magento in April of 2014 to serve as the Magento Evangelist. Developer evangelism is a recent concept in the programming world, and it’s a vital thing for a big company with an open source product and highly active community. My job has two main functions: to make sure you all know what you need to know about Magento (both the company and the software), and to ensure that Magento knows what is important to you all.
In all of my travels across most of the world, the question which I’m asked most frequently is, “When is Magento 2 coming out?” I’ve noticed that there are two reasons why I’m asked this question. The first reason is out of a healthy mistrust of our stated timelines: as many of you know, Magento 2 was announced quite a while ago, and there are various reasons why we are still talking about its pending release today. The second reason is that many people have missed our numerous announcements of the “new” release timeline. I’ll answer both of these reasons at once. The stated timeline follows:
- 2014 Q4: M2 Dev Platform Beta
- 2015 Q1: M2 Dev Platform Release Candidate
- 2015 Q3/Q4: M2 Merchant Beta
- 2015 Q4: M2 General Availability
This timeline was first announced in May of 2014 at Magento Imagine, and it has been consistently repeated at every official Magento event since. Everyone in the company is focused on delivering against these expectations which we’ve set. It’s important that we do deliver, as it is important to have your faith and confidence as well as the confidence of the eCommerce space that we can deliver as promised. Disregard that I am very much an optimist when I state with confidence that we will deliver according to this timeline. You don’t have to take my word for it though: our distinguished Chief Architect, Alan Kent, committed to this timeline (or an even earlier delivery) back in September at the community-run Meet Magento event in New York. And guess what…?
Magento, “open source,” and GitHub
I’m also frequently asked about / frequently hear about the nature of Magento’s “open source” approach and commitment. While there’s no doubt that Magento CE is by definition open source software (the OFL & AFL licensing mandate it as such), the questions and concerns I’ve heard are in regards to how Magento satisfies the open source development model itself. For the record, these concerns predate the Magento 2 era, going all the way back to the initial release of the platform (and probably earlier, but I only started paying attention in 2008). For example, in Magento 1 there were no nightly or weekly builds as there are in some other open source projects. Rather, code pushes to Magento’s public SVN repository were infrequent and certainly not intended to be a regular, transparent update for the community. Also, the roadmap for Magento 1 was mostly focused on issues being resolved rather than features being released. Issues themselves were inconsistently updated in the bug tracker. And the most significant deviation for Magento from open source development was the cumbersome mechanism by which our community of developers and users contributed feedback, features, and patches to the product. This was the old way of doing things though. Magento has been improving in its openness even before my arrival, and I am delighted to say that we have many actions to point to our increasing openness as open source stewards of the Magento 2 project. I’ll be posting more about this really, really good news tomorrow following the Magento 2 Dev Beta webinar.
What happened to the forums?
One of the first things I wanted to fix after joining Magento this year were the forums. I joined the forums as a member back in 2008, seeking information and occasionally finding some. Before too much time I was answering questions myself, and I soon became a moderator. Eventually though a combination of work, spam, and progressive degradation in forum moderation features ran me off (as it ran off many others). Others stuck around, but the fight against spam was ceaseless. Earlier this year the spam problem really came to a head and we placed the forums in archive mode. When we did this I added an email alias of mine to the archived forum pages as a stopgap… and have since personally responded to hundreds of inquiries for help!
I’m glad to report that we are integrating a SaaS platform which will replace the forums and provide additional community-focused/community-enabling tools. Using a SaaS solution allows us to focus our efforts on interaction rather than maintenance. Gone will be the days of fighting spam and tolerating bugs: our SaaS vendor has dedicated anti-spam and support teams. We’re currently working with our existing community moderators, and we will have an update on the launch sometime in the next few months.
What happened to translations?
I happened upon the old translations page/tool at magentocommerce.com back in August, and I was immediately struck by the four things: the number of locales present, the lack of usability, the lack of completeness for most translations, and the fact that we were not linking to this page anywhere. Clearly a better solution is called for. I took the functionality offline and added the same community@ email so I could still help anyone needing translations. Shockingly, I started receiving 3-4 emails per day from people literally all over the world (save Antarctica) needing translations. To my horror I realize that people have been downloading very, very incomplete translation packs for some time now! So, I’ve been regularly responding to these emails explaining how to find translation packs in Connect (link), and requesting help with future translation efforts. This should help us seed the new crowdsourced translation tool when it comes online. As is the case with the forums, I don’t have a firm timeline to announce for this yet, but I will announce it as soon as I do.
What’s up with Connect?
Speaking of Connect, I would like to share that we in Small Business are working on a new implementation of this facility. This is a massive project, as we are incorporating years of feedback regarding extension quality, searchability, as well as the need to prepare Connect for the Magento 2 era. Details and timeline for these changes are going to be announced by my boss Ryan Thompson very soon, so stay tuned for that. Of course, your feedback on Connect is always welcome at email@example.com.
There is a lot going on in the world of Magento and there is much to talk about – in fact, this post was a lot longer before wiser heads suggested I condense it. If you are an established community member, you will be thrilled by our announcements over the next month. If you are new, you are coming into the community at an exciting time. There’s an amazing future ahead of all of us, and the real winners are the merchants and customers who will benefit from our collective efforts.