July 2024 Summaries
2 posts from Graphite
Filter
Month:
Year:
Post Summaries
Back to Blog
In a blog post reflecting on the evolution of continuous integration practices, Graydon Hoare, the creator of Bors, highlights the challenges and solutions related to managing merge skew in software development. The early efforts involved using automated systems to maintain a bug-free code repository, an approach that has since evolved into the modern practice of continuous integration, where code is tested before merging to ensure stability. Despite these advancements, merge skew—when changes occur between the time a pull request is tested and when it is merged—remains a significant issue, particularly in high-velocity environments. As teams grow and the pace of merges increases, the likelihood of semantic conflicts rises, leading to disruptions in productivity. Early solutions like Bors introduced automated merge queues to tackle this problem, but they struggled with throughput. In response, companies like Google developed complex systems using batching and parallelization to handle large volumes of code changes efficiently. These practices have influenced newer tools and features from platforms like GitHub and GitLab, which now offer native merge queues that incorporate lessons from previous systems, aiming to balance correctness with speed in the merging process.
Jul 28, 2024
2,941 words in the original blog post.
Code review practices are evolving as more developers utilize AI coding assistants like ChatGPT and GitHub Copilot, leading to an increased volume of code that requires review. An analysis of over 5 million pull requests reveals that small companies, defined as those with 20 or fewer engineers, merge code three times faster than larger organizations, partly due to their tendency to skip code reviews. TypeScript is increasingly favored over JavaScript at smaller startups, while larger companies continue to use established languages like Java and Python. Companies employing monorepos experience significantly longer merge times, while the ideal pull request (PR) size for efficiency is found to be 50 lines or fewer. Continuous Integration (CI) run times are notably longer at larger companies, which also are more likely to use merge queues to automate and streamline the merging process. Overall, the findings suggest that while smaller companies benefit from speedier processes, larger organizations prioritize thoroughness and complexity management.
Jul 18, 2024
1,426 words in the original blog post.