Magento Core Contribution Multi-Source Inventory Project
The Magento Community Engineering Team presented the MSI-Project at the Magento Contribution Day in Leipzig 21–22 May 2017. For me, it was nice to hear that Magento starts a community driven open source project. After the presentation of the technical vision a small team of 5 community developers, myself included, started working on the project. My first task was to create UI Components to show the grid and edit mask in the backend. The other developers focused on building the API and writing unit and integration tests.
In this 2 Days, I learnt many things about the core and UI components and testing. The task was well documented with screenshots, interfaces and descriptions. But the greatest benefit for me was getting an insight into how the core development team think through features and development. After the hackathon it was easier to find implementations and understand the implementation of the Magento core.
Since this Hackathon I have opened 9 Pull Request to the MSI Project. In every PR I get clear comments from the Magento team, but the most comments are architecture improvements. Because the MSI Module should be an evolution of the catalog inventory module there is of course going to be a lot of discussion.
How the Team are working
We have an MSI Community Stand-up weekly — each Friday at 15:00 UTC. The Team has a Github board with tickets and statuses. If I have any questions I can raise them with the team in the slack chat #msi. For the more complex tasks, which involve discussiuons about architecture, we have extra calls.
My Learnings from the contributions
- Implement fast multi save operation with a command
- Implement Indexer with aliases and zero downtime
- How to use DocBlock Templates in PHPDoc
- Write Integration tests with complex test seeds
- Service Contracts and different between API and SPI interfaces
- Create a Web API cover them with Functional Testing
- Documentation of tasks with interfaces and charts
- Think like core developer and how I can extend the implementation but keep backward compatibility,
If you feel that you would also like to get involved with Magento’s open source push, then I would recommend the following:
- Pick a topic you have passion for,
- Connect with the team via Github, twitter and slack (request to join via firstname.lastname@example.org),
I have definitely grown as a developer over these last 4 months. It is a nice opportunity work side by side with leading magento architects.