While Git is established in the Open Source world, we're only just seeing the emergence of DVCS in our daily jobs. How can DVCS enable us to collaborate in a traditional "enterprise" setting.
Atlassian has fully embraced DVCS and has started to build features into their suite of products to take advantage of this new and exciting paradigm.
The talk will dive deep into the successful git work flows used inside Atlassian. There is no size fit all for this topic and various effective processes can be devised and are in active used at our company.
The talk will also cover tools and techniques used to reduce friction during the development of features and bugfix releases like for example pre/post receive hooks and automatic merges.
Outline:
* Software Development Practices And DVCS
- Branch vs fork (single server/repo, vs forks)
- Code quality (pre-commit hook, pre-checkout hook, pre-receive, see below)
* Awesome Git Workflows Used Internally At Atlassian
- Continuous Delivery Branching model
- Product Releases Branching model
* Streamlining Your Git Process
- merge vs rebase
- Rebase as cleanup
- Meaningful merges
- hooks
. hooks in general
. Post-checkout checks
. pre-commit hooks
. Great Pre-receive and Post-receive hooks
- Automatic merges
* How does CI change when you move to git?
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...hamidsamadi
This document discusses Git workflows and branching models. It recommends:
1. Using feature branches off a main branch like master for continuous delivery or release branches for product releases.
2. Merging feature branches rather than rebasing to maintain a clear history. Automatic merging is preferred with placeholders to avoid unwanted merges.
3. Setting up tools and automation through hooks for code quality, branch protection and continuous integration while allowing flexibility.
4. Embracing pull requests for collaboration while keeping the main repository structure clean through occasional rebases of feature branches.
How do you implement Continuous Delivery? Part 1Thoughtworks
This document discusses how to implement continuous delivery (CD) in an agile project. It explains that CD helps build the right product by releasing small chunks frequently for customer feedback, reduces risk by releasing changes incrementally, and ensures real progress by treating every commit as a potential release. The document advises fitting CD into an agile project by making each commit a possible release rather than long release cycles, and having continuous iterations as checkpoints rather than timeboxes. It promotes CD for faster and more reliable software delivery through automation and continuous integration and deployment.
Git is not just a version control system. Git can change the way you interact with your team members. Lot’s of teams don’t think about reflecting their development workflow in Git and just use it out-of-the-box. Git, however, can be much more powerful, giving your team a boost in productivity, protecting your delivery pipeline and helping you to work better together.
In this session we will start with a central workflow that is used by a lot of Subversion teams. You will learn how to practically integrate ALM solutions like continuous deployment, code reviews, change tracking and much more into your individual workflow. You will find out how to protect your master branch from accidental commits, broken builds and unreviewed code. This presentation will help you discover the best way to work together as a team – whether you’re yet to migrate to Git or even an experienced Git user.
How to Work Efficiently in a Hybrid Git-Perforce EnvironmentPerforce
Many companies face the challenge of supporting Git and Perforce together in their company. This presentation will describe the challenges Trend Micro faced and how they enabled a hybrid Git-Perforce environment. Additionally, learn three practices in using Perforce which make their work more efficient.
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
Paul Hammant of ThoughtWorks runs through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it, and Perforce in particular, in their enterprise. Takeaways include prerequisites, pitfalls, economics, scaling, and related practices.
Trunk-based development is a workflow where developers work directly on a main branch called the "trunk". The trunk is always in a deployable state. Short lived branches are used for developing new features which are then merged into the trunk after passing tests. Releases are cut from the trunk periodically. This allows for continuous integration and deployment while maintaining a stable release.
JAZOON'13 - Stefan Saasen - Real World Git Workflowsjazoon13
The document discusses best practices for using Git in enterprise workflows. It recommends adopting a centralized collaboration model with a single shared repository. For branching models, it suggests using either a continuous delivery model with feature, staging, and master branches, or a product release model with one branch per feature or bugfix. Key practices include using pull requests, following a strict merge protocol, and leveraging automation through hooks and continuous integration to ensure code quality.
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...hamidsamadi
This document discusses Git workflows and branching models. It recommends:
1. Using feature branches off a main branch like master for continuous delivery or release branches for product releases.
2. Merging feature branches rather than rebasing to maintain a clear history. Automatic merging is preferred with placeholders to avoid unwanted merges.
3. Setting up tools and automation through hooks for code quality, branch protection and continuous integration while allowing flexibility.
4. Embracing pull requests for collaboration while keeping the main repository structure clean through occasional rebases of feature branches.
How do you implement Continuous Delivery? Part 1Thoughtworks
This document discusses how to implement continuous delivery (CD) in an agile project. It explains that CD helps build the right product by releasing small chunks frequently for customer feedback, reduces risk by releasing changes incrementally, and ensures real progress by treating every commit as a potential release. The document advises fitting CD into an agile project by making each commit a possible release rather than long release cycles, and having continuous iterations as checkpoints rather than timeboxes. It promotes CD for faster and more reliable software delivery through automation and continuous integration and deployment.
Git is not just a version control system. Git can change the way you interact with your team members. Lot’s of teams don’t think about reflecting their development workflow in Git and just use it out-of-the-box. Git, however, can be much more powerful, giving your team a boost in productivity, protecting your delivery pipeline and helping you to work better together.
In this session we will start with a central workflow that is used by a lot of Subversion teams. You will learn how to practically integrate ALM solutions like continuous deployment, code reviews, change tracking and much more into your individual workflow. You will find out how to protect your master branch from accidental commits, broken builds and unreviewed code. This presentation will help you discover the best way to work together as a team – whether you’re yet to migrate to Git or even an experienced Git user.
How to Work Efficiently in a Hybrid Git-Perforce EnvironmentPerforce
Many companies face the challenge of supporting Git and Perforce together in their company. This presentation will describe the challenges Trend Micro faced and how they enabled a hybrid Git-Perforce environment. Additionally, learn three practices in using Perforce which make their work more efficient.
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
Paul Hammant of ThoughtWorks runs through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it, and Perforce in particular, in their enterprise. Takeaways include prerequisites, pitfalls, economics, scaling, and related practices.
Trunk-based development is a workflow where developers work directly on a main branch called the "trunk". The trunk is always in a deployable state. Short lived branches are used for developing new features which are then merged into the trunk after passing tests. Releases are cut from the trunk periodically. This allows for continuous integration and deployment while maintaining a stable release.
JAZOON'13 - Stefan Saasen - Real World Git Workflowsjazoon13
The document discusses best practices for using Git in enterprise workflows. It recommends adopting a centralized collaboration model with a single shared repository. For branching models, it suggests using either a continuous delivery model with feature, staging, and master branches, or a product release model with one branch per feature or bugfix. Key practices include using pull requests, following a strict merge protocol, and leveraging automation through hooks and continuous integration to ensure code quality.
Releasing High Quality PHP Packages - ConFoo Montreal 2019Colin O'Dell
Releasing open-source libraries is more than sharing your Github URL with the world. There are many considerations and steps involved especially for successful and long-lived projects.
In this talk we’ll cover the principles behind creating, releasing and maintaining high-quality libraries. Topics will include structuring the repository, implementing modern PHP standards, maintaining changelogs, using CI tests, releasing new versions and more.
Sempre se perguntou como funciona o desenvolvimento iOS em um ambiente profissional? Será mesmo que a gente faz archive na mão e perde 1 hora porque esqueceu de incrementar o número do build? E sofre toda vez que precisa subir algo no test flight?
Vou falar de:
*Git Flow - Branches, PullRequests, Code Review*
(Como evitar conflitos e garantir que o código que subiu foi revisado)
*SwiftLint*
(Porque é importante manter padrões no código, e todos da equipe programando da mesma forma)
*Fastlane*
(Incrementar build automaticamente, rodar testes, fazer o archive, entre outros, sem precisar esperar o Xcode colaborar)
*Continuous Integration & Continuous Deploy - Bitrise*
(A mágica de como automatizar TUDO no processo de desenvolvimento)
A presentation form Integration Stockholm where we shared our collected thoughts on how to implement Continuous Delivery in mainly Enterprise organisations. What has worked for us and what did not work and how to approach CI/CD and succeed...
Releasing open-source libraries involves much more than sharing your Github URL with the world. There are many considerations and steps involved, especially if you want your project to be successful and long-lived. In this talk, we'll cover the principles behind creating, releasing, and maintaining high-quality libraries. Topics will include structuring the repository, implementing modern PHP standards, maintaining changelogs, using CI tests, releasing new versions, and other best practices. Attendees will walk away with enough knowledge to publish their own quality PHP packages on Packagist for others to use.
Wrapped in a single session, you'll find the concepts and techniques that convert the average Git practitioner into a master of the craft. We'll go from technical topics like "efficient conflict resolution" and "effective code cleanup," to the often-asked "how to handle project dependencies with Git" and "how to manage massive repositories." And much more.
Super-powered CI with Git - Sarah Goff-DupontAtlassian
Continuous integration is a critical part of working as a team and shipping great software. But when you switch to Git, CI can seem chaotic due to the sudden explosion of branches. Learn how to keep it under control with branch builds, shallow clones, repository caching, and other tricks of the trade.
Slides da palestra no Café Ágil da ThoughtWorks e Tá Safo em Belém, 10/08/2012.
Outros links interessantes:
http://www.youtube.com/watch?v=xzstASOvqNc
http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/
Moving to Git opens up a whole new level of agility for software teams. Freed from the clunky code freezes and monolithic mega-merges that plague centralized version control, developers can isolate work in progress and build in narrow vertical slices with ease. Branching is so painless with Git that many teams are making new branches for each user story or bug fix they implement. This model is quickly becoming the new gold standard for agile teams – and for good reason!
The document discusses the role of software testing engineers (SWET) at DeNA Co., Ltd. It provides:
1) Background on the creation of the SWET group to improve quality and productivity as the Mobage Open Platform expanded globally and the system was refactored.
2) An overview of the SWET group's work, including testing the Mobage RESTful API, web applications, mobile web, and SDKs using techniques like unit, integration, API, and UI testing.
3) An example of a test scenario for a "Notification from Games" feature integrating the game API, user settings, and chat functionality.
How do you choose a git workflow that increases productivity and reduces the friction of your team? What are the battle tested practices of successful teams that moved to git? How is git used inside Atlassian?
As you might have heard git has many compelling features and has gained incredible momentum in the industry at large. Yet understanding how an enterprise team can adopt it can be daunting. The presentation aims to help answer these questions and more:
- Available collaboration models when using a distributed version control system like git
- Branching models that foster and enhance parallel development
- Emerging code best practices and choices that can be safely adopted when migrating to git
- How Continuous Integration changes when your team embraces git
There are plenty of big names in the business using version control, but when did the greats of gaming start using the tools that fuel their teams and how have these tools contributed to their success?
In this DevTalk we'll cover a few of the reasons why titans of the gaming industry rely on versioning, as well as how and why they got started.
Read on and learn:
- Who's using version control
- How to develop your next game quickly and improve collaboration
- What tools to have in your arsenal for game development
- Why starting versioning early will make or break your professional workflow
Effective Code Review (Or How To Alienate Your Coworkers)Perforce
In this talk, the architects of Perforce Swarm will guide you through the process of starting and updating a code review. They will also share some of their secrets for performing effective reviews. Learn how to start and update code reviews using Swarm, best practices for performing effective review, and the benefits of pre-commit automated testing and deployment.
If you create Joomla! extensions you have to do some not complicated but time consuming tasks. It is easy to make a mistake and you have to start over again. I'll show how I have setup my environment and how this is integrated in the development process and package creating process. You can learn how a tool like phing can make you life easier.
Is Trunk-based Development Easy in Game Development?Perforce
Trunk-based development (TBD) can reduce complexity and speed up your game delivery, but it does come with its challenges. This session will run through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it.
In this session, you will learn:
The challenges associated with trunk-based development
How continuous integration can help
Why a "Single Source of Truth" is an important foundation to TBD
Git and Git Workflow Models as Catalysts of Software DevelopmentLemi Orhan Ergin
This is the slides of my latest talk in DevFest Istanbul 2013 which is organized by Google Developers Group Istanbul. The content mainly has 3 sections. Git branching model in theory, creating a feature by git commands and git best practices.
This document summarizes a software company's migration from Mercurial to Git for source control and their new workflow using Git. They implemented Vincent Driessen's branching model with long-running branches for master, staging, and development. Developers work in their own forks, rebase regularly, and submit pull requests to integrators for review and merging into staging or development. This standardized process aims to reduce merge conflicts and enable predictable integration and deployment between branches.
XPDS13: Xen Hypervisor Development Update - George Dunlap, CitrixThe Linux Foundation
Includes other development updates, aka NUMA, FreeBSD, Xen and Libvirt.
Xen 4.3 was the first release with our new "release coordinator" role during the whole development cycle. This talk will review some ways in which the process worked well for 4.3, and some ways it could have been better, and then go on to talk about the 4.4 release.
London Atlassian User Group - February 2014Steve Smith
Continuous deployment is causing organisations to rethink how they build and release software. Atlassian Bamboo is rapidly adding features to help with automating deployment, but there are a lot of other practical and organisational issues that need to be addressed when adopting this development model. The Atlassian business-platforms team has been dealing with these issues over the last few months as we transition our order system to continuous deployment. This talk will cover why we adopted this model, some of challenges we encountered, and the approaches and tools we used to overcome them.
Be a Happier Developer with Git / Productive Team #gettinggitright Shunsuke (Sean) Osawa
This document provides information about a conference session on Git and productive teams, including:
1. An agenda for the session that covers happier developers, productive teams, and a product called Stash.
2. Information about WiFi access and instructions to fill out a survey for prizes.
3. Details on pricing plans for Stash, ranging from free basic versions to paid plans for more users.
Releasing High Quality PHP Packages - ConFoo Montreal 2019Colin O'Dell
Releasing open-source libraries is more than sharing your Github URL with the world. There are many considerations and steps involved especially for successful and long-lived projects.
In this talk we’ll cover the principles behind creating, releasing and maintaining high-quality libraries. Topics will include structuring the repository, implementing modern PHP standards, maintaining changelogs, using CI tests, releasing new versions and more.
Sempre se perguntou como funciona o desenvolvimento iOS em um ambiente profissional? Será mesmo que a gente faz archive na mão e perde 1 hora porque esqueceu de incrementar o número do build? E sofre toda vez que precisa subir algo no test flight?
Vou falar de:
*Git Flow - Branches, PullRequests, Code Review*
(Como evitar conflitos e garantir que o código que subiu foi revisado)
*SwiftLint*
(Porque é importante manter padrões no código, e todos da equipe programando da mesma forma)
*Fastlane*
(Incrementar build automaticamente, rodar testes, fazer o archive, entre outros, sem precisar esperar o Xcode colaborar)
*Continuous Integration & Continuous Deploy - Bitrise*
(A mágica de como automatizar TUDO no processo de desenvolvimento)
A presentation form Integration Stockholm where we shared our collected thoughts on how to implement Continuous Delivery in mainly Enterprise organisations. What has worked for us and what did not work and how to approach CI/CD and succeed...
Releasing open-source libraries involves much more than sharing your Github URL with the world. There are many considerations and steps involved, especially if you want your project to be successful and long-lived. In this talk, we'll cover the principles behind creating, releasing, and maintaining high-quality libraries. Topics will include structuring the repository, implementing modern PHP standards, maintaining changelogs, using CI tests, releasing new versions, and other best practices. Attendees will walk away with enough knowledge to publish their own quality PHP packages on Packagist for others to use.
Wrapped in a single session, you'll find the concepts and techniques that convert the average Git practitioner into a master of the craft. We'll go from technical topics like "efficient conflict resolution" and "effective code cleanup," to the often-asked "how to handle project dependencies with Git" and "how to manage massive repositories." And much more.
Super-powered CI with Git - Sarah Goff-DupontAtlassian
Continuous integration is a critical part of working as a team and shipping great software. But when you switch to Git, CI can seem chaotic due to the sudden explosion of branches. Learn how to keep it under control with branch builds, shallow clones, repository caching, and other tricks of the trade.
Slides da palestra no Café Ágil da ThoughtWorks e Tá Safo em Belém, 10/08/2012.
Outros links interessantes:
http://www.youtube.com/watch?v=xzstASOvqNc
http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/
Moving to Git opens up a whole new level of agility for software teams. Freed from the clunky code freezes and monolithic mega-merges that plague centralized version control, developers can isolate work in progress and build in narrow vertical slices with ease. Branching is so painless with Git that many teams are making new branches for each user story or bug fix they implement. This model is quickly becoming the new gold standard for agile teams – and for good reason!
The document discusses the role of software testing engineers (SWET) at DeNA Co., Ltd. It provides:
1) Background on the creation of the SWET group to improve quality and productivity as the Mobage Open Platform expanded globally and the system was refactored.
2) An overview of the SWET group's work, including testing the Mobage RESTful API, web applications, mobile web, and SDKs using techniques like unit, integration, API, and UI testing.
3) An example of a test scenario for a "Notification from Games" feature integrating the game API, user settings, and chat functionality.
How do you choose a git workflow that increases productivity and reduces the friction of your team? What are the battle tested practices of successful teams that moved to git? How is git used inside Atlassian?
As you might have heard git has many compelling features and has gained incredible momentum in the industry at large. Yet understanding how an enterprise team can adopt it can be daunting. The presentation aims to help answer these questions and more:
- Available collaboration models when using a distributed version control system like git
- Branching models that foster and enhance parallel development
- Emerging code best practices and choices that can be safely adopted when migrating to git
- How Continuous Integration changes when your team embraces git
There are plenty of big names in the business using version control, but when did the greats of gaming start using the tools that fuel their teams and how have these tools contributed to their success?
In this DevTalk we'll cover a few of the reasons why titans of the gaming industry rely on versioning, as well as how and why they got started.
Read on and learn:
- Who's using version control
- How to develop your next game quickly and improve collaboration
- What tools to have in your arsenal for game development
- Why starting versioning early will make or break your professional workflow
Effective Code Review (Or How To Alienate Your Coworkers)Perforce
In this talk, the architects of Perforce Swarm will guide you through the process of starting and updating a code review. They will also share some of their secrets for performing effective reviews. Learn how to start and update code reviews using Swarm, best practices for performing effective review, and the benefits of pre-commit automated testing and deployment.
If you create Joomla! extensions you have to do some not complicated but time consuming tasks. It is easy to make a mistake and you have to start over again. I'll show how I have setup my environment and how this is integrated in the development process and package creating process. You can learn how a tool like phing can make you life easier.
Is Trunk-based Development Easy in Game Development?Perforce
Trunk-based development (TBD) can reduce complexity and speed up your game delivery, but it does come with its challenges. This session will run through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it.
In this session, you will learn:
The challenges associated with trunk-based development
How continuous integration can help
Why a "Single Source of Truth" is an important foundation to TBD
Git and Git Workflow Models as Catalysts of Software DevelopmentLemi Orhan Ergin
This is the slides of my latest talk in DevFest Istanbul 2013 which is organized by Google Developers Group Istanbul. The content mainly has 3 sections. Git branching model in theory, creating a feature by git commands and git best practices.
This document summarizes a software company's migration from Mercurial to Git for source control and their new workflow using Git. They implemented Vincent Driessen's branching model with long-running branches for master, staging, and development. Developers work in their own forks, rebase regularly, and submit pull requests to integrators for review and merging into staging or development. This standardized process aims to reduce merge conflicts and enable predictable integration and deployment between branches.
XPDS13: Xen Hypervisor Development Update - George Dunlap, CitrixThe Linux Foundation
Includes other development updates, aka NUMA, FreeBSD, Xen and Libvirt.
Xen 4.3 was the first release with our new "release coordinator" role during the whole development cycle. This talk will review some ways in which the process worked well for 4.3, and some ways it could have been better, and then go on to talk about the 4.4 release.
London Atlassian User Group - February 2014Steve Smith
Continuous deployment is causing organisations to rethink how they build and release software. Atlassian Bamboo is rapidly adding features to help with automating deployment, but there are a lot of other practical and organisational issues that need to be addressed when adopting this development model. The Atlassian business-platforms team has been dealing with these issues over the last few months as we transition our order system to continuous deployment. This talk will cover why we adopted this model, some of challenges we encountered, and the approaches and tools we used to overcome them.
Be a Happier Developer with Git / Productive Team #gettinggitright Shunsuke (Sean) Osawa
This document provides information about a conference session on Git and productive teams, including:
1. An agenda for the session that covers happier developers, productive teams, and a product called Stash.
2. Information about WiFi access and instructions to fill out a survey for prizes.
3. Details on pricing plans for Stash, ranging from free basic versions to paid plans for more users.
The Ember.js Framework - Everything You Need To KnowAll Things Open
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Yehuda Katz
Founder of Tilde
Front Dev 1
The Ember.js Framework - Everything You Need To Know
Are you sick of Merge Hell? Do your feature branches go rogue? Do you spend more time fiddling with your Version Control System than doing actual development work? Then Trunk Based Development might be for you. Facebook does it. Google does it. Instead of messing with multiple branches, just use your master branch. Always. In addition to giving you an overview about how Trunk Based Development works, where it shines and where the pitfalls are, this talk will also cover the necessary techniques to succeed with it, such as Branch By abstraction, Feature Toggles and backwards compatible Database Migrations.
Version control systems allow developers to track changes to files over time by recording file revisions, versions, and change history. They provide key benefits like backup and restore capabilities, the ability to revert files, and facilitating collaboration through features such as branching and merging. Common version control systems include Git, SVN, Mercurial, and CVS. Git is a distributed system while SVN uses a centralized model. This document discusses Git version control basics like cloning a repository, checking in and out files, viewing diffs of changes, branching, merging branches, and tagging releases.
This document discusses the benefits of distributed version control systems (DVCS) like Git over centralized version control systems (CVCS) like SVN. It argues that DVCS tools make collaboration and branching much easier and more flexible. Various workflow models for DVCS are presented, including integrating feature branches and using different roles like integration managers. The document provides references for learning more about Git and distributed version control.
Composer at Scale, Release and Dependency ManagementJoe Ferguson
Having one application to support is easy enough, but what if you have a CMS, an API, a design tool, and a core library that each other tool also needs to consume? Where do you even begin juggling the release management and cycle of so many interconnected and interdependent packages? Learn how a small team manages a large CMS project and utilizes real-world best practices of Git, CI/CD, and old fashion planning to bring a solid platform to thousands of editors and millions of viewers.
Benjy Weinberger, one of the maintainers of the Pants build system, spoke at PyCon Israel 2021 about the monorepo codebase architecture, its advantages for Python repos, and the tooling needed to work effectively in a monorepo.
A Branch for Every Feature - Atlassian Summit 2012Atlassian
The document discusses the benefits of using a "branch per feature" workflow for software development compared to a traditional mainline workflow. It notes benefits like more frequent deployments, freedom to commit and experiment, and easier reviews and planning. It also addresses how to implement continuous integration and merging of changes when using a branch per feature workflow.
Chef Delivery provides a unified workflow for software development with fixed stages and phases for approving and delivering code changes. It ensures high velocity, safety, and visibility through automation of infrastructure as code, testing, and deployment. The shared pipeline can be used across projects and teams.
The document describes Clarive's branching model for managing code repositories. It avoids using a "develop" branch and instead uses release candidate branches for merging in features. Topic branches are isolated and merge directly into release branches. Released code is merged into the master branch. The model aims to keep history clean, make it easy to remove rejected features and move fixes between releases, and tie code deployment to branch statuses for continuous integration and delivery.
10 Tips for Configuring Your Builds with Bamboo SpecsAtlassian
Bamboo 6 lets every team manage their plans through code. But it's only the start of a journey. At Atlassian, we now configure the vast majority of our builds and deployments with code. Whether you're a new starter or already a user of Bamboo Specs, you're (or will be) facing questions such as "How do I test my Spec before update?", "Can I safely modify this reused Spec component?", or "How do I make Specs more accessible to non-Java teams?".
Join Przemek Bruski, the architect of Bamboo to hear how our teams solved these - and more - problems. Apart from practical tips, we'll also talk about jump-starting your Specs with our exporter, latest additions to the Specs feature, and support for Bitbucket Cloud Pipelines configuration files.
This document summarizes the release and dependency management processes used by a small development team. It describes their Git workflow for new features, including branching, peer review, and merging. It also covers versioning tools, testing on staging servers, production deployment, hotfixes and bugfixes. The document introduces the team's use of Jenkins for continuous integration and delivery. It describes how the team developed a shared "Core" package to organize common code and established version constraints to control dependencies.
The iOS team at The Washington Post needed to grow quickly and maintain sanity (and shipping quality). Here are some of the key workflow tools that we used.
TDD is the elengant way of designing software. People scares from it so much, because software design is hard and it requires discipline. In this talk, I tried to describe what TDD is from software design perspective.
The document discusses test-driven development (TDD) and its relationship to software design. It states that the source code is the real software design and that testing is part of refining the design. Well-designed code has high cohesion and low coupling, which TDD helps achieve by writing tests before code and refactoring along the way. The design process is iterative, with programming, testing, refactoring, and verification all contributing to the evolving design captured in the source code.
Chances are good that you've heard about Git, the distributed source control system that's taking the development world by storm. Organizations of all sizes are taking the plunge, and InCycle is here to help you make the transition smooth and easy. This webcast will present an overview of the Git source control model and compare it to other source control solutions like Team Foundation Version Control and Subversion, so you can understand the key differences between them and what all the buzz is about!
Continuous Updating with VersionEye at code.talks 2014Robert Reiz
These are the slides from the "Continuous Updating with VersionEye" talk at code.talks 2014 in Hamburg.
Nowadays modern software development without open source is almost impossible. In average a modern software project has 100 open source components. How do you keep track of these open source dependencies? How do you know that they are still alive? How do you manage the licenses for these dependencies? These are all important questions which get answered in this talk.
Similar to Real World Git Workflows - EclipseCon Europe 2013 (20)
Nicola Paolucci gave a presentation on powerful Git techniques including git worktree for working on multiple branches concurrently, git subtree for managing external dependencies, and git --fixup for cleaning commit history. Git worktree allows creating additional working copies of a repository for parallel work. Git subtree can integrate external projects cleanly and efficiently. Git --fixup helps squash raw commits before publishing branches. The talk demonstrated these techniques and emphasized their usefulness for collaboration and productivity.
The age of orchestration: from Docker basics to cluster managementNicola Paolucci
The container abstraction hit the collective developer mind with great force and created a space of innovation for the distribution, configuration and deployment of cloud based applications. Now that this new model has established itself work is moving towards orchestration and coordination of loosely coupled network services. There is an explosion of tools in this arena at different degrees of stability but the momentum is huge.
On the above premise this session we'll delve into a selection of the following topics:
- Two minute Docker intro refresher
- Overview of the orchestration landscape (Kubernetes, Mesos, Helios and Docker tools)
- Introduction to Docker own ecosystem orchestration tools (machine, swarm and compose)
- Live demo of cluster management using a sample application.
A basic understanding of Docker is suggested to fully enjoy the talk.
Slide counterparts of video course found here: https://www.youtube.com/playlist?list=PLDshL1Z581YYxLsjYwM25HkIYrymXb7H_
Follow along or just sit back and enjoy a live, hands on tutorial on the power routines of experienced git users. We'll explore with real world examples how to amend commits, do an interactive rebase - and why would you want to do one in the first place, how to solve conflicts without any merge tools, the power of less known merge strategies, how to do interactive commits, and much more.
Course notes
Part 1/8: Introduction
Who am I?
Content overview.
Choice of test project.
Part 2/8: Housekeeping
Find my aliases here.
Enhance your shell with liquidprompt.
Start with an empty commit.
Short cuts to list commits with nice annotations:
Part 3/8: Amending and rebasing
Amend a commit.
Reset a commit to perform a rename.
Different resets affect different parts of a git repository.
Part 4/8: Interactive rebase
How to perform an interactive rebase to remove a binary file stuck in the repository
Part 5/8: Solving conflicts
In this 5th part of the course we'll show a few concepts useful when solving merge and rebase conflicts with an interactive example on how to solve one.
We'll explain --ours, --theirs, conflict markers and what's the process needed to solve a conflict using Git.
Part 6/8: What is a merge and alternative merge strategies
We cover the basics of what a merge is in Git and we show the use of a couple of less known merge strategies like the "ours" merge strategy and the "octopus" strategy.
Part 7/8: Git interactive add
In this part we show how to perform and interactive add using Git. That is splitting the contents of some change across to more semantically meaningful commits.
Part 8/8: How to use Git stash
How to use git stash to solve common workflow situations, swap context with ease and smoothness and look cool to your colleagues.
This document provides tips and techniques for becoming a Git master, including:
1. Creating aliases to simplify common Git commands like committing and adding remotes. Aliases allow parameters and bash functions for complex commands.
2. Using features like assume-unchanged to hide files from Git and rerere to automate resolving similar conflicts.
3. Interactive rebasing to polish commit histories by squashing, rewording, and fixing up commits. Rebasing rewrites history so care is needed.
4. Techniques for preventing history tampering like reject force pushes and signing tags for verification. GPG keys can be stored and imported in Git.
5. Handling project dependencies with build tools or
Be a better developer with Docker (revision 3)Nicola Paolucci
Be a better developer with Docker: tricks of the trade (revision 3)
The talk will teach developers how to approach their development environment setups using Docker, covering awesome tricks to make the experience smooth, fast, powerful and repeatable. The talk is logically divided in five parts:
- What is Docker
- Why Docker makes developers happier
- Workflows and techniques
- Tips and tricks
- Future developments
Be a happier developer with Docker: Tricks of the tradeNicola Paolucci
This document provides an overview of how Docker can make developers happy by providing clean and perfect development environments, fast application mobility and repeatability, and enabling great collaboration through microservices architecture. It then discusses various workflows and techniques for using Docker, including developing inside a single running container, leveraging containers to modularize code, reusing Dockerfiles, sharing data between containers through volumes, accessing Docker in a VM through methods like NFS or Samba, using linked containers for simple service connections, and opening ports on containers using techniques like port forwarding, VBoxManage port exposure, and iptables.
Dear Ninja Git Apprentice, your training will be short but it will be dense and fierce. I will teach you how to lock down your master's fortress from tampering and infiltration, how to become invisible and hide data in a repository, how to resist any attacks and recover your committed and uncommitted files, how to be fast as a fox to cover your tracks and resolve conflicts. Save the master!
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
4. You heard
has
Cheap local branching
Full local history
10x the speed of svn
Staging area
Speed
Huge community
Feature based workflow
prominent in Open Source
cryptographic integrity
Distributed
7. Can we do a fast
Can we fix a bug for the
upcoming
RELEASE
HOTFIXrelease?
for the current
?
Can we
BUILD
the current code ?
Is the code for that
FEATURE
complete?
Has everybody
REVIEWED ?
the code for this feature
25. staging
promoted from staging, can receive hotfixes
Time
feature
master/
production
master is in production
PR
staging is the next version
new features off staging
with branch names like:
username/ISSUE-KEY-summary
26. staging
promoted from staging, can receive hotfixes
Time
feature
master/
production
master is in production
PR
staging is the next version
new features off staging
with branch names like:
Hotfix
username/ISSUE-KEY-summary
27. staging
promoted from staging, can receive hotfixes
Time
feature
master/
production
master is in production
PR
staging is the next version
new features off staging
with branch names like:
Hotfix
username/ISSUE-KEY-summary
61. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
Less stable than its
baseline
When code complete
Continuously
62. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
Less stable than its
baseline
When code complete
Continuously
63. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
64. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
65. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
66. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
67. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
Feature branches
68. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
Feature branches
69. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
Feature branches
70. The secret sauce
The merge protocol
When a branch is:
Change flows from
branch to baseline:
Change flows from baseline
to branch:
More stable than its
baseline
Continuously
Never
When code complete
Continuously
Release branch
Less stable than its
baseline
Feature branches
Credit: Laura Wingerd - The Flow of change
114. Recommendation?
Explicit merges into the mainline
4
Don’t fear the Merge! Use it!
git log --first-parent
5
May rebase feature branches
To update the feature branch
115. Recommendation?
Explicit merges into the mainline
4
Don’t fear the Merge! Use it!
git log --first-parent
After review!
5
May rebase feature branches
To update the feature branch
116. Recommendation?
Explicit merges into the mainline
4
Don’t fear the Merge! Use it!
git log --first-parent
After review!
5
May rebase feature branches
To update the feature branch
6
Work with the tool!
117. Recommendation?
Explicit merges into the mainline
4
Don’t fear the Merge! Use it!
git log --first-parent
After review!
5
May rebase feature branches
To update the feature branch
6
Work with the tool!
Trying to strive for a linearized history is less useful than you think
153. $ git checkout master
master is lookin'good!
c4f3b4b has 4 green builds.
$ git checkout stable-2.3
DANGER! stable-2.3 is
busted. e1324fa has 2 red
builds.