How are Mage-OS packages built?
This presentation gives an overview over the history so far.
The presentation was given at MageTitans 2023 in Manchester (UK), organized by Space48.
Mage-OS is a community owned fork of Magento Open Source. It ensures the accessibility, longevity and success of the Magento platform.
Make implementation of third party elements in magento 2 in 5-times easierElena Kulbich
This document discusses how Composer can make implementing third-party elements in Magento 2 five times easier. It provides an overview of Composer and how it can be used to manage dependencies and install third-party libraries in Magento 2 projects. The document then demonstrates how to install and use Google reCAPTCHA as an example third-party library in a Magento 2 module using Composer. It compares the amount of code needed with and without Composer, showing that Composer can significantly reduce development time.
- Webpack is a module bundler that builds dependencies between modules and manages assets like JavaScript files, CSS files, and images.
- It uses loaders to transform different types of modules and plugins to extend its functionality. Loaders handle file transformations while plugins can access and modify the build process.
- Code splitting allows splitting code into separate bundles to optimize load performance by prioritizing loading and allowing on-demand loading of code. Techniques like extracting vendor code and using import statements help enable code splitting in Webpack.
Apache Tuscany is an open source project that simplifies the development, deployment and management of distributed applications built as compositions of service components. It is based on the Service Component Architecture specifications being defined by the OASIS Open SCA Collaboration. This presentation describe the experience to OSGi enable the Tuscany SCA runtime.
Slides of the Magento Fireside Chat March 20th, 2014 with
Fabrizio Branca (@fbrnc)
Bastian Ike (@b_ike)
Daniel Fahlke (@flyingmana)
Rolando Granadino (@beeplogic)
Ben Marks (@benmarks)
Dependency management in Magento with ComposerManuele Menozzi
This document discusses using Composer for dependency management in Magento projects. It explains what Composer is and how it works, including declaring dependencies in composer.json, installing packages, and generating autoloads. It also covers how to use the Magento Composer Installer plugin to install Magento modules and core via Composer. The benefits of managing Magento dependencies with Composer include time savings, code reuse, easy upgrades, and consistent code usage.
In the web industry there are a lot of tools available to make a developers life easier. Because this ecosystem moves so fast - and it's hard to keep track of everything - I thought it would be a good idea to do a roundup of tools I personally use for Magento development. These slides cover dependency management basics, Composer, Modman and N98 Magerun.
Magento2 From Setup To Deployment. Automate EverythingJuan Alonso
As developers we are in the business of automating things and that also includes our daily tasks. In this talk we will cover all the steps involved in software delivery and how to automate them in Magento 2. We will also have a look at available open source tools that can help you with that.
Make implementation of third party elements in magento 2 in 5-times easierElena Kulbich
This document discusses how Composer can make implementing third-party elements in Magento 2 five times easier. It provides an overview of Composer and how it can be used to manage dependencies and install third-party libraries in Magento 2 projects. The document then demonstrates how to install and use Google reCAPTCHA as an example third-party library in a Magento 2 module using Composer. It compares the amount of code needed with and without Composer, showing that Composer can significantly reduce development time.
- Webpack is a module bundler that builds dependencies between modules and manages assets like JavaScript files, CSS files, and images.
- It uses loaders to transform different types of modules and plugins to extend its functionality. Loaders handle file transformations while plugins can access and modify the build process.
- Code splitting allows splitting code into separate bundles to optimize load performance by prioritizing loading and allowing on-demand loading of code. Techniques like extracting vendor code and using import statements help enable code splitting in Webpack.
Apache Tuscany is an open source project that simplifies the development, deployment and management of distributed applications built as compositions of service components. It is based on the Service Component Architecture specifications being defined by the OASIS Open SCA Collaboration. This presentation describe the experience to OSGi enable the Tuscany SCA runtime.
Slides of the Magento Fireside Chat March 20th, 2014 with
Fabrizio Branca (@fbrnc)
Bastian Ike (@b_ike)
Daniel Fahlke (@flyingmana)
Rolando Granadino (@beeplogic)
Ben Marks (@benmarks)
Dependency management in Magento with ComposerManuele Menozzi
This document discusses using Composer for dependency management in Magento projects. It explains what Composer is and how it works, including declaring dependencies in composer.json, installing packages, and generating autoloads. It also covers how to use the Magento Composer Installer plugin to install Magento modules and core via Composer. The benefits of managing Magento dependencies with Composer include time savings, code reuse, easy upgrades, and consistent code usage.
In the web industry there are a lot of tools available to make a developers life easier. Because this ecosystem moves so fast - and it's hard to keep track of everything - I thought it would be a good idea to do a roundup of tools I personally use for Magento development. These slides cover dependency management basics, Composer, Modman and N98 Magerun.
Magento2 From Setup To Deployment. Automate EverythingJuan Alonso
As developers we are in the business of automating things and that also includes our daily tasks. In this talk we will cover all the steps involved in software delivery and how to automate them in Magento 2. We will also have a look at available open source tools that can help you with that.
The document discusses enabling OSGi for Apache Tuscany by modularizing Tuscany modules into individual OSGi bundles. This allows Tuscany to work in OSGi environments and provides benefits like versioning, isolation, and lifecycle management of extensions. Key steps include turning Tuscany modules and third party dependencies into OSGi bundles, and tools are provided to help with development and testing of Tuscany within an OSGi environment.
The document discusses splitting code into Composer packages to improve modularity. It describes how to treat local directories as Composer packages by adding them as repositories and requiring the packages. It emphasizes that splitting code well involves designing clean interfaces and minimizing dependencies, especially on frameworks. Factors like cohesion and coupling should be considered when deciding how to split packages.
This document discusses using Maven, Eclipse, and OSGi together. It provides examples and instructions for converting existing Maven projects to OSGi bundles, integrating Maven builds with the Eclipse IDE and PDE plugin development model, and converting Eclipse plugins to Maven projects. Key topics covered include using the Felix Maven Bundle Plugin to generate OSGi manifests from Maven POMs, handling dependencies and version ranges when combining Maven and OSGi, and configuring the Maven dependency plugin to copy dependencies for Eclipse plugin development.
The document discusses GlassFish v3 Prelude and the Update Center. It summarizes that the Update Center can be installed via a bootstrap mechanism and registers a desktop notifier. It also shows examples of using the pkg command line tool to list, install, and manage software packages. Finally, it provides links to additional resources for more information.
Maven 2.0 - Project management and comprehension toolelliando dias
Maven is a build tool that helps manage Java projects. It provides standardized ways to build projects, manage dependencies, generate documentation and reports. Key features include dependency management, which allows projects to declare dependencies that Maven will automatically download. It also provides standard project structures and build lifecycles that make projects more uniform and easier for new developers to understand.
XGBoost Developer 1.3.0 released on April 13, 2021
- GGBoost Python Package, XGBoost R Package, XGBoost C++ API, XGBoost Parameters, XGBoost GPU support, XGBoost JVM Package, XGBoost.jl, XGBoost C Package
This document provides an overview of Burr Sutter's 9 steps to getting awesome with Kubernetes. It begins with an introduction and outlines the steps which include installing Kubernetes, building container images, using kubectl commands, viewing logs, configuring environments, service discovery, rolling updates, and debugging databases. It also discusses options for installing Kubernetes like Minikube, managing Kubernetes manifests, building container images, and using operators. The document provides resources for learning more about each step and technology discussed.
The document discusses Ubuntu Server and its use for cloud computing infrastructure. Specifically:
- Ubuntu Server is optimized for managing distributed applications and services across servers and clouds.
- Ubuntu is the most widely used Linux distribution on public clouds like Amazon Web Services, and is also commonly used for private clouds using OpenStack.
- Charms are reusable tools that make it easy to deploy and manage services on Ubuntu clouds, including popular services like MongoDB.
The document outlines the steps to install and configure MongoDB on a Linux system using packages from the MongoDB repository. It describes downloading the mongodb-org metapackage, which installs the mongod, mongos, mongo shell, and tools packages. It also covers configuring SELinux, starting the mongod daemon, verifying successful startup, ensuring mongod starts on reboot, stopping and restarting mongod, and fully uninstalling MongoDB.
How to-create-a-simple-module-in-magento-2.0Daniele Crupi
The document provides steps to create a simple module in Magento 2.0. It first compares how modules are created in Magento 1.0 versus Magento 2.0, noting changes in folder structure and declaration files. It then outlines the 4 steps to create a simple Magento 2.0 module: 1) Declare the module in etc/module.xml, 2) Create a controller, block and configuration files, 3) Add a layout and template, 4) Activate the module. Following these steps allows one to build a basic "Hello World" module for Magento 2.0.
Magento 2 Composer for Extensions DistributionSergii Shymko
The document discusses the evolution of dependency management in Magento from early releases which had no formal dependency management, through PEAR and modman, to the adoption of Composer. It outlines key dates like the first Magento release, introduction of modman and first use of Composer. It describes Composer's capabilities and how it addressed issues in Magento 1.x. It also covers changes made in Magento 2 to fully support Composer like granular packages, semantic versioning and declaring dependencies.
Sergii Shymko: Magento 2: Composer for Extensions DistributionMeet Magento Italy
Magento 1.x uses Magento Connect to package and distribute extensions. Magento 2 uses Composer, a de facto standard dependency manager for PHP, instead. Integration with Composer changes approach to module versioning, dependencies declaration, and installation. It completely changes the way modules/themes/localizations are distributed in the Magento ecosystem.
This document discusses packaging Ruby and Rails applications for production. It covers using system packages versus gems, configuration management tools like Chef and Puppet, creating Debian packages, packaging gems, build servers, pain points like outdated Rubygems packages, and ideas for deeper Bundler integration and packaging gems by default. Overall it presents strategies for deploying Ruby applications as system packages for production servers.
This document provides instructions for installing and configuring MongoDB version 0.1. It includes steps to tune the operating system by checking the kernel version and file system, setting file descriptor limits, tuning network parameters, disabling atime for data volumes, and disabling NUMA. It also describes adding a MongoDB user and group, setting process and file limits for that user, extracting the MongoDB program files, and moving them to the /opt/ directory.
The document discusses the first meeting of the Bucharest Google Technology Users Group (GTUG) which took place on March 2, 2010 in Bucharest. The agenda included introductions to Google Web Toolkit (GWT) and Google App Engine (GAE) with live demonstrations of hello world applications in GWT and GAE. The meeting provided overviews and resources for GWT and GAE and concluded with next steps for the Bucharest GTUG user group.
Karl Heinz Marbaise gives a presentation on Maven that covers:
1) The history and roadmap of Maven, including versions from 1.X to the current 3.X and planned future versions.
2) The Maven ecosystem, including core Maven, plugins, shared components, and projects from Apache, MojoHaus, and Codehaus-plexus.
3) Ways to optimize Maven build performance such as enabling parallelization.
This document provides an overview of using Groovy to improve Maven builds. It discusses how Groovy Maven (GMaven) allows adding custom build logic using Groovy. Polyglot Maven adds Groovy syntactic sugar to POM files. Groovy MOJOs provide a way to create reusable plugins with full access to the Maven runtime. Examples demonstrate dynamically generating plugin properties and passing information between plugins. The document concludes that Maven provides a platform for building applications, not just processes, when combined with Groovy.
A quick guide through the wonders of dependency management, build automation, teamwork with distributed version control systems, and continuous integration.
These slides were shared first at Meet-Magento Romania 2021.
Developers starting to build Hyvä based Magento stores often ask "How do I use an extension that was built for a Luma theme in Hyvä?"
The answer is through compatibility modules.
Many modules already have been made compatible with Hyvä, but there are many extensions, and there will always be some that need work.
This presentation will cover the process of creating a Hyvä compatibility module and share some concrete examples from real projects.
Presentation for Meet-Magento Indonesia 2021.
It describes what the Hyvä Theme for Magento is and how it is working with it from a (mainly backend) developer perspective.
The document discusses enabling OSGi for Apache Tuscany by modularizing Tuscany modules into individual OSGi bundles. This allows Tuscany to work in OSGi environments and provides benefits like versioning, isolation, and lifecycle management of extensions. Key steps include turning Tuscany modules and third party dependencies into OSGi bundles, and tools are provided to help with development and testing of Tuscany within an OSGi environment.
The document discusses splitting code into Composer packages to improve modularity. It describes how to treat local directories as Composer packages by adding them as repositories and requiring the packages. It emphasizes that splitting code well involves designing clean interfaces and minimizing dependencies, especially on frameworks. Factors like cohesion and coupling should be considered when deciding how to split packages.
This document discusses using Maven, Eclipse, and OSGi together. It provides examples and instructions for converting existing Maven projects to OSGi bundles, integrating Maven builds with the Eclipse IDE and PDE plugin development model, and converting Eclipse plugins to Maven projects. Key topics covered include using the Felix Maven Bundle Plugin to generate OSGi manifests from Maven POMs, handling dependencies and version ranges when combining Maven and OSGi, and configuring the Maven dependency plugin to copy dependencies for Eclipse plugin development.
The document discusses GlassFish v3 Prelude and the Update Center. It summarizes that the Update Center can be installed via a bootstrap mechanism and registers a desktop notifier. It also shows examples of using the pkg command line tool to list, install, and manage software packages. Finally, it provides links to additional resources for more information.
Maven 2.0 - Project management and comprehension toolelliando dias
Maven is a build tool that helps manage Java projects. It provides standardized ways to build projects, manage dependencies, generate documentation and reports. Key features include dependency management, which allows projects to declare dependencies that Maven will automatically download. It also provides standard project structures and build lifecycles that make projects more uniform and easier for new developers to understand.
XGBoost Developer 1.3.0 released on April 13, 2021
- GGBoost Python Package, XGBoost R Package, XGBoost C++ API, XGBoost Parameters, XGBoost GPU support, XGBoost JVM Package, XGBoost.jl, XGBoost C Package
This document provides an overview of Burr Sutter's 9 steps to getting awesome with Kubernetes. It begins with an introduction and outlines the steps which include installing Kubernetes, building container images, using kubectl commands, viewing logs, configuring environments, service discovery, rolling updates, and debugging databases. It also discusses options for installing Kubernetes like Minikube, managing Kubernetes manifests, building container images, and using operators. The document provides resources for learning more about each step and technology discussed.
The document discusses Ubuntu Server and its use for cloud computing infrastructure. Specifically:
- Ubuntu Server is optimized for managing distributed applications and services across servers and clouds.
- Ubuntu is the most widely used Linux distribution on public clouds like Amazon Web Services, and is also commonly used for private clouds using OpenStack.
- Charms are reusable tools that make it easy to deploy and manage services on Ubuntu clouds, including popular services like MongoDB.
The document outlines the steps to install and configure MongoDB on a Linux system using packages from the MongoDB repository. It describes downloading the mongodb-org metapackage, which installs the mongod, mongos, mongo shell, and tools packages. It also covers configuring SELinux, starting the mongod daemon, verifying successful startup, ensuring mongod starts on reboot, stopping and restarting mongod, and fully uninstalling MongoDB.
How to-create-a-simple-module-in-magento-2.0Daniele Crupi
The document provides steps to create a simple module in Magento 2.0. It first compares how modules are created in Magento 1.0 versus Magento 2.0, noting changes in folder structure and declaration files. It then outlines the 4 steps to create a simple Magento 2.0 module: 1) Declare the module in etc/module.xml, 2) Create a controller, block and configuration files, 3) Add a layout and template, 4) Activate the module. Following these steps allows one to build a basic "Hello World" module for Magento 2.0.
Magento 2 Composer for Extensions DistributionSergii Shymko
The document discusses the evolution of dependency management in Magento from early releases which had no formal dependency management, through PEAR and modman, to the adoption of Composer. It outlines key dates like the first Magento release, introduction of modman and first use of Composer. It describes Composer's capabilities and how it addressed issues in Magento 1.x. It also covers changes made in Magento 2 to fully support Composer like granular packages, semantic versioning and declaring dependencies.
Sergii Shymko: Magento 2: Composer for Extensions DistributionMeet Magento Italy
Magento 1.x uses Magento Connect to package and distribute extensions. Magento 2 uses Composer, a de facto standard dependency manager for PHP, instead. Integration with Composer changes approach to module versioning, dependencies declaration, and installation. It completely changes the way modules/themes/localizations are distributed in the Magento ecosystem.
This document discusses packaging Ruby and Rails applications for production. It covers using system packages versus gems, configuration management tools like Chef and Puppet, creating Debian packages, packaging gems, build servers, pain points like outdated Rubygems packages, and ideas for deeper Bundler integration and packaging gems by default. Overall it presents strategies for deploying Ruby applications as system packages for production servers.
This document provides instructions for installing and configuring MongoDB version 0.1. It includes steps to tune the operating system by checking the kernel version and file system, setting file descriptor limits, tuning network parameters, disabling atime for data volumes, and disabling NUMA. It also describes adding a MongoDB user and group, setting process and file limits for that user, extracting the MongoDB program files, and moving them to the /opt/ directory.
The document discusses the first meeting of the Bucharest Google Technology Users Group (GTUG) which took place on March 2, 2010 in Bucharest. The agenda included introductions to Google Web Toolkit (GWT) and Google App Engine (GAE) with live demonstrations of hello world applications in GWT and GAE. The meeting provided overviews and resources for GWT and GAE and concluded with next steps for the Bucharest GTUG user group.
Karl Heinz Marbaise gives a presentation on Maven that covers:
1) The history and roadmap of Maven, including versions from 1.X to the current 3.X and planned future versions.
2) The Maven ecosystem, including core Maven, plugins, shared components, and projects from Apache, MojoHaus, and Codehaus-plexus.
3) Ways to optimize Maven build performance such as enabling parallelization.
This document provides an overview of using Groovy to improve Maven builds. It discusses how Groovy Maven (GMaven) allows adding custom build logic using Groovy. Polyglot Maven adds Groovy syntactic sugar to POM files. Groovy MOJOs provide a way to create reusable plugins with full access to the Maven runtime. Examples demonstrate dynamically generating plugin properties and passing information between plugins. The document concludes that Maven provides a platform for building applications, not just processes, when combined with Groovy.
A quick guide through the wonders of dependency management, build automation, teamwork with distributed version control systems, and continuous integration.
Semelhante a Building Mage-OS - MageTitans 2023 (20)
These slides were shared first at Meet-Magento Romania 2021.
Developers starting to build Hyvä based Magento stores often ask "How do I use an extension that was built for a Luma theme in Hyvä?"
The answer is through compatibility modules.
Many modules already have been made compatible with Hyvä, but there are many extensions, and there will always be some that need work.
This presentation will cover the process of creating a Hyvä compatibility module and share some concrete examples from real projects.
Presentation for Meet-Magento Indonesia 2021.
It describes what the Hyvä Theme for Magento is and how it is working with it from a (mainly backend) developer perspective.
Property Based Testing is an process to build robust systems.
It facilitates a deeper understanding of the system under test. It can be used on any testing level: unit, integration or functional.
The presentation introduces how Property Based Testing works, how to use it with PHPUnit, and in what way it differentiates from example based tests.
It talks about strategies to find good properties to check for.
This presentation was built for the Meet-Magento conference 2020 in Mumbai.
The Magento 2 Certified Professional Developer exam is a lot harder than to the Magento 1 equivalent.
Many Magento 1 certified developers who enter the test expecting to pass have been disappointed.
The scenario based questions require the ability to analyze the description, and then relate it to the question and answers.
Generic OOP development principles have to be applied to the Magento 2 context.
This presentation covers the underlying principles and discusses some sample questions from the official study guide as well as some new ones. It also offers the opportunity to ask questions and discuss preparation techniques.
Attendees will get an idea of how ready they are to take the exam and how to prepare to pass the desired certification.
Working with Magento 2 UiComponents can be challenging.
This talk is about how to create and customize UiComponents without going crazy. The first part covers some general advice for writing self documenting code, the second (and in my opinion more interesting one) is about managing shared state in the view.
The slides where created for MageTitans Italy in April 2018.
A quick overview over integrating ClojureScript into the existing Magento 2 frontend.
This allows for a better developer experience compared to the default frontend components.
This document discusses test-driven development (TDD) katas in Magento 2. It introduces the concept of code katas as a way to practice and train skills like athletes do. Specific skills trained in TDD Magento katas include the red-green-refactor process, working with test doubles, separating concerns, and testing Magento development. An example kata is provided to implement a custom "GiftItem" total model that sets prices of free gift items to zero and adjusts the subtotal. The goal is to help developers start practicing TDD with Magento through examples.
This document describes a code kata exercise for practicing test-driven development (TDD) when working with Magento 2. The kata involves test driving the total model for a sample gift item module that adds a free water bottle when a product from a specific attribute set is added to the cart. The goal is to subtract gift item totals from the subtotal and set the price of gift items to zero through TDD and the collect method of the gift item total model. Participants are instructed to check out the starting code and test drive the total model to learn TDD and Magento skills.
How to set up Magento to for running tests and basics on using the Magento 2 integration test framework.
This presentation was given at #MageTestFest in Amersfoort in on November 17th, 2017.
ClojureScript in Magento 2 - MageTitansMCR 2017vinaikopp
This document discusses using ClojureScript to build parts of Magento sites in order to avoid frustration with some of Magento's UI components. It introduces ClojureScript as a hosted LISP dialect that compiles to JavaScript and allows good interoperability with JavaScript code. The author argues that ClojureScript's features like immutability, data structures, and compiler optimizations could help developers build Magento sites more quickly and with better quality. Examples are given of how ClojureScript code interacts with JavaScript in Magento. Recommendations are made for resources to learn more about ClojureScript.
Lizards & Pumpkins Catalog Replacement at mm17devinaikopp
Lizards & Pumpkins Catalog Replacement presentation at Meet-Magento 2017 in Leipzig, Germany on 23. May 2017.
It discusses how Lizards & Pumpkins solves the problems of Performance and Scalability while avoiding the problems introduced by caching.
It also discusses how to approach customizations in an encapsulated way.
Exploring the foundations of OOP and FP in PHP.
This presentation was held at MageTitans 2016 in Manchster.
It is the first time I've given this talk, I expect it to evolve over time.
Writing Testable Code (for Magento 1 and 2) 2016 Romainavinaikopp
The latest iteration of my "Writing testable code" presentation from Meet-Magento Romaina 2016 in Cluj-Napoca.
It covers basics on what properties of production code make testing simpler.
Writing Testable Code (for Magento 1 and 2)vinaikopp
The document discusses writing testable code in Magento 1 and 2. It begins by describing assumptions and goals, such as having confidence in deployments and enjoying writing tests. It then discusses what makes code testable, including keeping classes focused on a single purpose/responsibility. The document uses an example Magento module to demonstrate refactoring code from a monolithic observer class to split it into smaller classes separated by purpose. This makes the code easier to test by isolating business logic from entry points like observers. The document advocates extracting business logic from entry points and delegating it to collaborator classes to simplify testing.
Writing testable Code (MageTitans Mini 2016)vinaikopp
How can we write code that is easy to test? This talk is not a complete reference, it just tries to list some practical advice to ease the process of getting into testing.
Getting your hands dirty testing Magento 2 (at MageTitansIT)vinaikopp
Introduction into automated testing in Magento 2 with a focus on integration tests.
The presentation was held at the MageTitans conference in Milano, Italy on 2016-02-05.
I re-uploaded a newer version of the slide deck that contains more details.
Creating software requires from us developers to make a constant stream of choices.
Each of the choices we make hopefully brings the software we are writing closer to the state of functionality it is required to have.
At the same time, each of the choices we make forms the code in a way that impacts how we can continue to work with it, how easy it is to expand and build on to, how simple it is to understand, and how many bugs we will allow to creep in.
In short, the choices we make impact the cost of development.
This talk is about development guidelines for those choices that allow us to save time and money.
Contradicting the intuitive conclusion that this means cutting corners, it actually means that we have to focus on creating programs with a high external and internal quality; that clean code pays off.
Over the years the challenge of creating modules for Magento has become less, as knowledge in the community and eco-system has grown. However, many developers, lacking other examples, still try to write modules following the practices set by the core team. This leads to modules which are tightly coupled to the Magento framework and tend to become difficult to extend, maintain and update Modern architecture allows us to create more maintainable and flexible Magento modules which might be reused more easily, for example in Magento 2.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Liberarsi dai framework con i Web Component.pptxMassimo Artizzu
In Italian
Presentazione sulle feature e l'utilizzo dei Web Component nell sviluppo di pagine e applicazioni web. Racconto delle ragioni storiche dell'avvento dei Web Component. Evidenziazione dei vantaggi e delle sfide poste, indicazione delle best practices, con particolare accento sulla possibilità di usare web component per facilitare la migrazione delle proprie applicazioni verso nuovi stack tecnologici.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
Project Management: The Role of Project Dashboards.pdfKarya Keeper
Project management is a crucial aspect of any organization, ensuring that projects are completed efficiently and effectively. One of the key tools used in project management is the project dashboard, which provides a comprehensive view of project progress and performance. In this article, we will explore the role of project dashboards in project management, highlighting their key features and benefits.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...kalichargn70th171
In today's business landscape, digital integration is ubiquitous, demanding swift innovation as a necessity rather than a luxury. In a fiercely competitive market with heightened customer expectations, the timely launch of flawless digital products is crucial for both acquisition and retention—any delay risks ceding market share to competitors.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
2. Mage-os.org 22. Apr. 2023
Mage-OS is an open
initiative to ensure the
accessibility, longevity,
and success of the
Magento® platform
and ecosystem.
The Mage-OS
Distribution
is a community
owned fork
of Magento Open
Source.
Building a
Distribution
4. Mage-os.org 22. Apr. 2023
Back when we started: the first ideas…
Magento is many modules in a mono-repo
> Symfony uses splitsh/lite, maybe we can use it!
> There also are other existing tools…
5. Mage-os.org 22. Apr. 2023
First experiments
Splitting the magento repo into subrepos took ~36 hours!
6. Mage-os.org 22. Apr. 2023
Okay, something custom then!
“The Plan”
- Clone repo
- List all tags
- For each "version" tag…
- Iterate over all folders in app/code/Magento
- Zip the folder as a composer package using the name and version in the
composer.json file in each directory
- Use composer/satis to use the directory with the zips as an artifact type repo
7. Mage-os.org 22. Apr. 2023
Time to build!
Ivan: Let’s create a Rust repo-splitter that keeps the git repo
in-memory so no working copy is needed!
Vinai: Let’s keep it simple and write a shell script version, too!
> The more implementations we get, the better our understanding of the problem will be and the more
people will be able to work on it (rust, bash, js, …) <
8. Mage-os.org 22. Apr. 2023
One tool made it to production 🎉
The JavaScript implementation started as an
experiment.
Turned out to be good enough!
Also available as a docker image
magece/mageos-repo-js
to build your own Mage-OS repositories!
9. Mage-os.org 22. Apr. 2023
Beside the module & framework packages
magento/project-community-edition metapackage (e.g. 2.4.5-p2)
depends on ⬇️
magento/product-community-edition metapackage (e.g. 2.4.5-p2)
depends on ⬇️
EVERY MAGENTO PACKAGE included in 2.4.5-p2 in a specific version (e.g. 103.0.2)
and also ⬇️
magento/magento2-base (2.4.5-p2)
10. Mage-os.org 22. Apr. 2023
The magento2-base package
Contains base directory filesystem structure, i.e. app/code, bin/, dev/, ...
11. Mage-os.org 22. Apr. 2023
The magento2-base package
It depends on magento/magento-composer-installer.
It declares extra.map in composer.json.
The magento/magento-composer-installer
copies the extra.map files and folders
from the package into the project base.
12. Mage-os.org 22. Apr. 2023
There is no way to determine the extra.map contents programmatically.
From what is visible outside of Magento/Adobe, the map seems to be maintained manually.
The magento2-base package
13. Mage-os.org 22. Apr. 2023
Solution for mirror packages:
copy the magento2-base composer.json of
all past releases from upstream
The magento2-base package
14. Mage-os.org 22. Apr. 2023
There be Dragons Inconsistencies!
The git repos don’t match the old Magento releases exactly…
- Version mismatch in package composer.json and base package composer.json
- No version in package composer.json
- Missing release tags
- Branches with version name instead of a tag (did that branch change after the release??)
- For some releases, no commit in public repo matches the released code exactly
(file missing or file is different)
15. Mage-os.org 22. Apr. 2023
Workarounds
Each problem requires a
different workaround,
e.g. adding missing tags or files.
16. Mage-os.org 22. Apr. 2023
You did this for all versions of Magento 2?
Nope.
We only support releases since 2.3.7-p2.
19. Mage-os.org 22. Apr. 2023
Ups! There is more than one git repo!
- https://github.com/mage-os/mirror-security-package
- https://github.com/mage-os/mirror-inventory
- https://github.com/mage-os/mirror-magento2-page-builder
- https://github.com/mage-os/mirror-inventory-composer-installer
- https://github.com/mage-os/mirror-adobe-ims
- https://github.com/mage-os/mirror-adobe-stock-integration
- https://github.com/mage-os/mirror-magento-composer-installer
- https://github.com/mage-os/mirror-composer-root-update-plugin
- https://github.com/mage-os/mirror-composer-dependency-version-audit-plugin
- https://github.com/mage-os/mirror-magento2-sample-data (not a direct dep)
- https://github.com/mage-os/mirror-commerce-data-export (not a direct dep)
20. Mage-os.org 22. Apr. 2023
Different repos, different Structures
- Single package repos, like mage-os/mirror-inventory-composer-installer
- Multiple packages in base, like mage-os/mirror-security-package
- Meta-package in _metapackage dir, like mage-os/mirror-security-package
- Special case subdirectory package, like
mage-os/mirror-magento2/tree/2.4-develop/lib/internal/Magento/Framework/Amqp
- Repos that change the directory structure, like mage-os/mirror-inventory
(first a clone of magento/magento2, then only app/code/Magento/* folders + _metapackage)
21. Mage-os.org 22. Apr. 2023
Additional dependencies!
The dependency on the packages from those repos are added to the magento/product-
community-edition package.
23. Mage-os.org 22. Apr. 2023
Bundled Core Extensions
- Magento forked the public upstream repos
- These forks are not public
- Solution for mirror:
copy released packages from upstream
- Solution for Mage-OS distro:
no core bundled modules
28. Mage-os.org 22. Apr. 2023
What is different from a mirror build?
Use the head of a branch instead of a git tag.
Figure out a nightly-build version for each package instead of relying on a version
in composer.json.
29. Mage-os.org 22. Apr. 2023
Nightly Package Versions
After considering many options, we now use
- get the latest release tag of the repo
- get the version of all packages
- if less than 4 parts are present: increment last part of the current version,
otherwise increment the last part
- if there is no stability suffix, add an -aYYYYMMDD suffix to version
- otherwise keep the stability suffix and add YYYYMMDD
30. Mage-os.org 22. Apr. 2023
What deps to use in the base package?
- clone repo
- run composer install
- use github.com/mage-os/php-dependency-list to scan every .php, .phtml and di.xml file
- For each referenced PHP class
- Use the composer autoloader to determine which package contains the class
- Record the package name and version as a composer dependency for the base package
32. Mage-os.org 22. Apr. 2023
Mage-OS Nightly Releases ✅
The same process as upstream-nightly works
for the mageos-nightly builds, too!
33. Mage-os.org 22. Apr. 2023
New upstream Magento Open Source release?
- copy project-community-edition, product-community-edition and base-package composer.json into
the respective resources/history/magento/* folder with the release version as the name
- run the build
- install and validate new version
- add workarounds for missing tags and such to build config, re-build and test until everything works
- PR to github.com/mage-os/generate-mirror-repo-js, run action against preview-mirror.mage-os.org
- Merge PR, new packages are built and deployed to mirror.mage-os.org
36. Mage-os.org 22. Apr. 2023
The Build Config
Everything is declared in
“the build config”.
Base config extended by build type
(mirror, upstream-nightly or mageos-nightly)
Config is processed by the build script to
generate the package ZIP files.
39. Mage-os.org 22. Apr. 2023
Next steps
Active Projects:
- Generate a real Mage-OS release
- Faster Integration & Unit Tests - (hi Adam + Damien!)
- New Features - (hey Gowri + Ivan!)
- Content!
40. Mage-os.org 22. Apr. 2023
Join our Community
Adam Crossland (UK)
Alexander Buch (DE)
Andreas Mautz (DE)
Anton Siniorg (EE)
Arron Moss (UK)
Barbaros Selim Büyükelçi (TR)
Benno Lippert (DE)
Bernard Robbins (US)
Brent Peterson (US)
Christian Münch (DE)
Damien Retzinger (US)
Daniel Fahlke (DE)
Daniel Sloof (NL)
David Lambauer (DE)
Dominik Rammert (DE)
Erik Hanson (US)
Gowri Sankar (AU)
Jisse Reitsma (NL)
John Prendergast (IE)
Nicole Mentzen (DE)
Roland Haselager (NL)
Sergei Derzap (BY)
Tim Bucciarelli (US)
Timon de Groot (NL)
Vitaliy Golomozy (UA)
Willem Wigman (NL)
Wouter Steenmeijer (NL)
Thank you to the contributors!
I’m so happy to see you, and have the opportunity to talk about Mage-OS!
My name is Vinai, and I’m happy I can be with you in person today, as with all previous MageTitans events here in Manchester!
I’ve got very, very fond memories of MageTitans, it’s the best!
Let’s get started!
In a nutshell: this is what is on our website:
“Mage-OS is an open initiative…[read left side of slide]”
The foundation of Mage-OS is the Mage-OS Distribution.
“The Mage-OS distribution is a…[read right side of slide]”
What does community-owned mean? It’s easy to gloss over that, but it’s actually the heart of everything.
What is community?
> Magento is many modules in a single repo, (a.k.a. “mono-as-poly”)
> Synfony uses splitsh/lite, maybe we can use it!
> There also are other tools that can be used to build packages from a monorepo
Thanks to Rafael Kassner for his work on https://github.com/magefm/repository-generator
The name “generate-mirror-repo-js” is not fitting any more!
A better name would be “generate-mageos-composer-repo”.
Thanks to Daniel Sloof! 🙌🏻
Next: nightly releases of upstream!
Next: nightly releases of upstream!
Special shoutout to Damien Retzinger of Mappia helm chart fame.
There are dozens of people who already have helped and contributed to Mage-OS, even though we are only just getting started.
Thank you to everyone who took joint ownership and move Mage-OS forward!
We look forward to creating the future together with you!
Thank you!