최근 패트릭 갤브레이스 다음 moxi 릴리스를 준비하면서 여러 플랫폼과 여러 컴파일러에서 빌드를 깔끔하게 만드는 데 약간의 시간을 보냈습니다. 여러 플랫폼에서 지속적으로 빌드하고 테스트하면 코드의 유용성, 품질 및 수명을 보장하는 데 도움이 됩니다.
이는 노스케일의 모든 직원이 우리가 주도하고 기여하는 프로젝트에 도움이 된다고 믿습니다. 더스틴 살링스 는 멤캐시드 위키와 빌드 팜 자체에서 볼 수 있듯이 멤캐시드를 위해 오랫동안 이 작업을 해왔습니다. 노스케일의 모든 직원은 커뮤니티 기여와 함께 이러한 노력을 계속해 왔습니다. 보시다시피 꽤 포괄적인 목록입니다. 다른 프로젝트에서도 이 작업을 수행합니다. 멤캐시드 프록시인 moxi의 경우, 또 다른 빌드 팜이 있습니다. 지속적 통합에 익숙하지 않은 분들을 위해 빌드봇을 사용하면 다양한 빌드 환경에서 새로운 코드와 이슈가 발견되는 시간을 단축할 수 있습니다. 개발자가 변경 사항을 커밋*할 때마다 이러한 모든 플랫폼에서 멤캐시를 빌드하고 테스트합니다. 문제가 발생하면 바로 발견하여 수정할 수 있으므로 다른 플랫폼에서 빌드 문제가 오래 지속되지 않습니다. 코드를 '릴리스할 준비가 된 상태'로 유지하고, 일부 플랫폼에서는 컴파일 시 다른 플랫폼에서는 포착하지 못하는 오류를 포착할 수 있는 등 많은 이점이 있습니다. 실제로 어떻게 작동했는지 예를 들자면, 누군가 플랫폼에서 문제가 발생하면 당연히 문제 자체를 해결합니다(일반적으로 다음과 같이 요청합니다. 파일 버그 를 사용하여 테스트 케이스를 제공할 수도 있지만, 빌드 팜에 추가하는 데 도움을 요청할 수도 있습니다. 빌드 팜에 젠투 프로젝트는 멤캐시를 번들로 제공하며 수많은 플랫폼을 지원합니다. 최근 ARM 아키텍처용 젠투에서 문제가 발생했습니다. 그 과정에서 더스틴은 기여자에게 질문했습니다, 로빈 존슨에서 빌더를 설정할 수 있는지 물어봐서 이제 ARM에서 젠투를 위한 빌더가 생겼습니다. 패트릭과 저는 이번 마지막 moxi 릴리스에서 moxi의 빌드 팜에 새로운 빌더를 추가하고 컴파일러 경고를 강화하고 여러 가지 작은 버그를 수정했습니다. 이러한 버그 중 상당수는 현학적 모드의 컴파일러만 불평할 수 있는 경고에 가깝지만, 일부는 소프트웨어 버그가 숨기려고 하는 유형 안전성을 지적하는 것이었습니다. 일부 코킹과 밀봉으로 버그를 차단할 수 있습니다. 결국 노스케일의 목표는 멤캐시드, moxi, libmemcached 및 우리가 주도하거나 기여하는 다른 프로젝트에서 고품질의 결과물을 유지하는 것입니다. Dustin의 성적표 블로그 게시물 에서 볼 수 있듯이 이미 목표 대비 진전을 이루었으며, 빌드봇이 트리를 꾸준히 감시하면 목표를 달성하는 데 도움이 될 것입니다. * 기술적으로 우리가 사용하는 프로세스는 변경을 수행할 때 먼저 "빌드봇 시도"(Dustin이 기여)를 사용하여 모든 플랫폼에서 빌드 가능한 트리를 항상 유지하는 것입니다. 이를 통해 변경 사항을 커밋하지 않은 개발자도 테스트할 수 있습니다. git을 사용하여 Diff를 생성한 다음 일반적인 히스토리에 대해 트리를 패치하기만 하면 됩니다.