{"action":"created","issue":{"url":"https://api.github.com/repos/aciksozluk/altyapi-tartisma/issues/21","repository_url":"https://api.github.com/repos/aciksozluk/altyapi-tartisma","labels_url":"https://api.github.com/repos/aciksozluk/altyapi-tartisma/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/aciksozluk/altyapi-tartisma/issues/21/comments","events_url":"https://api.github.com/repos/aciksozluk/altyapi-tartisma/issues/21/events","html_url":"https://github.com/aciksozluk/altyapi-tartisma/issues/21","id":142112560,"number":21,"title":"PR ile yürüyen geliştirme","user":{"login":"onur","id":345828,"avatar_url":"https://avatars.githubusercontent.com/u/345828?v=3","gravatar_id":"","url":"https://api.github.com/users/onur","html_url":"https://github.com/onur","followers_url":"https://api.github.com/users/onur/followers","following_url":"https://api.github.com/users/onur/following{/other_user}","gists_url":"https://api.github.com/users/onur/gists{/gist_id}","starred_url":"https://api.github.com/users/onur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/onur/subscriptions","organizations_url":"https://api.github.com/users/onur/orgs","repos_url":"https://api.github.com/users/onur/repos","events_url":"https://api.github.com/users/onur/events{/privacy}","received_events_url":"https://api.github.com/users/onur/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":23,"created_at":"2016-03-19T23:53:52Z","updated_at":"2016-03-21T06:41:05Z","closed_at":null,"body":"Bu proje birçok kişinin katılımıyla geliştirileceğinden, yazılım geliştirilmeye başlandığında (örneğin bir iskelet oluştururken), bence her türlü geliştirme github'un sunduğu PR'ler (diğer bir değişle feature-branchlar) ile sağlanmalı ve en küçük değişiklik dahi proje üyelerinin fikri ve onayı alınmadan `master`'a girmemelidir. Herkesin owner olduğu ve istediği şeyi istediği gibi değiştirebildiği (commit edebildiği) bir projenin uzun solukta sağlıklı ilerleyebilmesi mümkün değildir.\r\n\r\nİleride oluşturulacak ve sadece depoya yazım izni bulunan bir çekirdek kadro ile (ki bu kişilerden sadece master'a merge yapması beklenir), feature branchlar altında yapılmış PR'lardan gelen tüm commitler titizlikle incelenmeli (review edilmeli) ve en az 2 (veya daha fazla) kişinin onayı alındıktan sonra `master` ile birleştirilmelidir. Sadece bu işi yapan çok kullanışlı botlar da geliştirilmiştir (PR'ı travis ile test edip ardından otomatik mergeleyen [homu](http://homu.io/) veya rust projesinin kullandığı bir PKD romanı karakteri olan [bors](https://github.com/bors) gibi).\r\n\r\nBunu yaparken, hem PR'ı hazırlayanın hem de inceleyenlerin bir takım kurallara uyması, oluşturulacak ürünün en sağlıklı şekilde geliştirilmesini sağlayacaktır. Bu kurallar şunlar olabilir:\r\n\r\n1. Commit mesajı ve konusu açıklayıcı olmalı ve düzgün bir dille yazılmalıdır.\r\n2. Eğer commit yeni bir özellik ekliyorsa mutlaka ilgili unit testleri ve gerekiyorsa dökümantasyonu da içermelidir.\r\n3. Commit'in testleri bozmuyor olması gerekir. Böyle bir durumda branch kesinlikle birleştirilmez ve PR'ı açandan ilgili değişiklikleri yapması istenir.\r\n4. Eğer PR birden fazla committen oluşuyorsa hazırlayanın mutlaka squash etmesi gerekir.\r\n5. Eğer feature branch'da conflictler oluştuysa PR'ı açan kişiden rebaselemesi istenir.\r\n\r\nGithub akışı (github-flow) adı da verilen PR (veya feature-branch) ile yürüyen geliştirme özellikle takım halinde çalışan geliştiriciler arasında hayli yaygın olarak kullanılmakta ve oluşacak insan kaynakları hataları en aza indirmektedir.[[1]](https://guides.github.com/introduction/flow/)[[2]](http://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/)[[3]](https://stackoverflow.com/questions/18188492/what-are-the-pros-and-cons-of-git-flow-vs-github-flow)[[4]](http://haacked.com/archive/2014/07/28/github-flow-aliases/)\r\n\r\nEğer bu disiplin projenin başında kazanılırsa, ileride hiç bir dram yaşanmaz ve herşey topluluğun fikirleri çerçevesinde ilerler. cc: @o "},"comment":{"url":"https://api.github.com/repos/aciksozluk/altyapi-tartisma/issues/comments/199147290","html_url":"https://github.com/aciksozluk/altyapi-tartisma/issues/21#issuecomment-199147290","issue_url":"https://api.github.com/repos/aciksozluk/altyapi-tartisma/issues/21","id":199147290,"user":{"login":"ramesaliyev","id":2088512,"avatar_url":"https://avatars.githubusercontent.com/u/2088512?v=3","gravatar_id":"","url":"https://api.github.com/users/ramesaliyev","html_url":"https://github.com/ramesaliyev","followers_url":"https://api.github.com/users/ramesaliyev/followers","following_url":"https://api.github.com/users/ramesaliyev/following{/other_user}","gists_url":"https://api.github.com/users/ramesaliyev/gists{/gist_id}","starred_url":"https://api.github.com/users/ramesaliyev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ramesaliyev/subscriptions","organizations_url":"https://api.github.com/users/ramesaliyev/orgs","repos_url":"https://api.github.com/users/ramesaliyev/repos","events_url":"https://api.github.com/users/ramesaliyev/events{/privacy}","received_events_url":"https://api.github.com/users/ramesaliyev/received_events","type":"User","site_admin":false},"created_at":"2016-03-21T06:41:05Z","updated_at":"2016-03-21T06:41:05Z","body":"@o savunduğum bu tarz bir yapıydı. oyumu buna veriyorum."}}