From 4c3292a4ad46ee0b0d9d71163dc17cb7cbd4ae81 Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Tue, 14 Aug 2018 14:21:25 +0300 Subject: [PATCH 01/27] =?UTF-8?q?users=5Fcontroller=20testi=20haz=C4=B1rla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/controllers/users_controller_test.rb | 74 +++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/controllers/users_controller_test.rb diff --git a/test/controllers/users_controller_test.rb b/test/controllers/users_controller_test.rb new file mode 100644 index 000000000..3bdef0763 --- /dev/null +++ b/test/controllers/users_controller_test.rb @@ -0,0 +1,74 @@ +# frozen_string_literal: true + +require 'test_helper' + +class UsersControllerTest < ActionDispatch::IntegrationTest + setup do + sign_in users(:serhat) + @user = users(:john) + end + + test 'should get index' do + get users_path + assert_response :success + assert_select '#add-button', t('users.index.new_user_link') + end + + test 'should get show' do + get user_path(@user) + assert_response :success + end + + test 'should get new' do + get new_user_path + assert_response :success + end + + test 'should create user' do + assert_difference('User.count') do + post users_path params: { + user: { + id_number: '33998445768', + email: 'new_user@gmail.com', + password: '123456' + } + } + end + + user = User.last + + assert_equal '33998445768', user.id_number + assert_redirected_to users_path + assert_equal t('users.create.success'), flash[:notice] + end + + test 'should get edit' do + get edit_user_path(@user) + assert_response :success + assert_select '.card-header strong', t('users.edit.form_title') + end + + test 'should update user' do + user = User.last + patch user_path(user), params: { + user: { + email: 'updated_user@gmail.com' + } + } + + user.reload + + assert_equal 'updated_user@gmail.com', user.email + assert_redirected_to users_path + assert_equal translate('users.update.success'), flash[:notice] + end + + test 'should destroy user' do + assert_difference('User.count', -1) do + delete user_path(User.last) + end + + assert_redirected_to users_path + assert_equal translate('users.destroy.success'), flash[:notice] + end +end From 2fbc3c3b485eab4a7a2222a2d0b3e9ba3433c0b8 Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Tue, 14 Aug 2018 14:31:32 +0300 Subject: [PATCH 02/27] =?UTF-8?q?users=5Fcontroller=20testini=20ge=C3=A7:?= =?UTF-8?q?=20kay=C4=B1tlanma=20ve=20kullan=C4=B1c=C4=B1=20y=C3=B6netimi?= =?UTF-8?q?=20route=20=C3=A7ak=C4=B1=C5=9Fmas=C4=B1n=C4=B1n=20=C3=B6n?= =?UTF-8?q?=C3=BCne=20ge=C3=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 7b24a72ab..63603aa15 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,7 +6,7 @@ root to: 'home#index' # devise routes - devise_for :users, controllers: { + devise_for :users, path_prefix: 'my', controllers: { registrations: 'user/registrations', passwords: 'user/passwords', sessions: 'user/sessions' From 5a5e398e6cae8092b007abf0a8ecae5c86194f6a Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Tue, 14 Aug 2018 14:35:33 +0300 Subject: [PATCH 03/27] =?UTF-8?q?users=5Fcontroller=20testini=20ge=C3=A7:?= =?UTF-8?q?=20should=5Fget=5Fshow=20eksik=20=C3=A7eviriyi=20d=C3=BCzelt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_addresses.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/users/_addresses.html.erb b/app/views/users/_addresses.html.erb index 945e2c982..df3b0e523 100644 --- a/app/views/users/_addresses.html.erb +++ b/app/views/users/_addresses.html.erb @@ -19,7 +19,7 @@ <%= fa_icon('gavel', text: t('activerecord.enums.address.names.formal')) if address.formal? %> - <%= fa_icon('address-book', text: t('activerecord.enums.address.names.other')) if address.informal? %> + <%= fa_icon('address-book', text: t('activerecord.enums.address.names.informal')) if address.informal? %> From 4079ffc2ff7cd18e1e1a0819f646baf710fb57ee Mon Sep 17 00:00:00 2001 From: msdundar Date: Tue, 14 Aug 2018 19:32:15 +0300 Subject: [PATCH 04/27] Update gem depencies --- Gemfile.lock | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 85c67fa90..f839fcb0d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -54,8 +54,8 @@ GEM arel (9.0.0) ast (2.4.0) aws-eventstream (1.0.1) - aws-partitions (1.97.0) - aws-sdk-core (3.24.0) + aws-partitions (1.98.0) + aws-sdk-core (3.24.1) aws-eventstream (~> 1.0) aws-partitions (~> 1.0) aws-sigv4 (~> 1.0) @@ -101,7 +101,7 @@ GEM rack (>= 1.6.0) rack-test (>= 0.6.3) xpath (~> 3.1) - chartkick (3.0.0) + chartkick (3.0.1) childprocess (0.9.0) ffi (~> 1.0, >= 1.0.11) chromedriver-helper (1.2.0) @@ -194,7 +194,7 @@ GEM method_source (0.9.0) mimemagic (0.3.2) mini_magick (4.8.0) - mini_mime (1.0.0) + mini_mime (1.0.1) mini_portile2 (2.3.0) minitest (5.11.3) msgpack (1.2.4) @@ -257,7 +257,7 @@ GEM rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) - redis (4.0.1) + redis (4.0.2) reek (5.0.2) codeclimate-engine-rb (~> 0.4.0) kwalify (~> 0.7.0) @@ -417,8 +417,5 @@ DEPENDENCIES uglifier (>= 1.3.0) web-console (>= 3.3.0) -RUBY VERSION - ruby 2.5.1p57 - BUNDLED WITH 1.16.3 From e0ceafcb728a114ccf754c71f2842284030b31a2 Mon Sep 17 00:00:00 2001 From: msdundar Date: Wed, 15 Aug 2018 19:43:01 +0300 Subject: [PATCH 05/27] Update issue templates --- .github/ISSUE_TEMPLATE/-zellik--nerisi.md | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/-zellik--nerisi.md diff --git a/.github/ISSUE_TEMPLATE/-zellik--nerisi.md b/.github/ISSUE_TEMPLATE/-zellik--nerisi.md new file mode 100644 index 000000000..c50defbc1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/-zellik--nerisi.md @@ -0,0 +1,26 @@ +--- +name: Özellik önerisi +about: Bu projeye eklenmesini istediğiniz veya değiştirilmesini istediğiniz bir özellik. + +--- + +**Bu özellik bir problemle mi ilgili? Lütfen detaylıca açıklayınız.** +Özelliği detaylıca açıklayınız. Eklenmesi/değiştirilmesi iyi olacak olan özelliğin netleştirilmesi, varsa yaşanan sorunların tanımı açıkça yapılmalıdır. + +**Sizin çözümünüz** +Kısa ve net bir şekilde konuyla ilişkili olarak sizin önerileriniz neler, sizin öneriniz kabul edilirse neler olacak, uygulama da neler iyileşecek açıklayınız. + +**Diğer alternatifler** +Konuyla veya sunduğunuz çözümle ilgili düşündüğünüz diğer alternatifler neler? Konuya dahil olarak kişiler neleri göz önünde bulundurmalı? + +**Katkı sağlama** +Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin. + +**Kontrol listesi** + +* [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? +* [ ] [Katkı sağlama dökümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? +* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? + +**Ek içerik** +Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. From a82ce8bb6328a55fd10ea4b76939e4d2b85c65f5 Mon Sep 17 00:00:00 2001 From: msdundar Date: Wed, 15 Aug 2018 19:52:55 +0300 Subject: [PATCH 06/27] Update issue templates --- .github/ISSUE_TEMPLATE/-zellik--nerisi.md | 1 + .github/ISSUE_TEMPLATE/hata-raporu.md | 46 +++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/hata-raporu.md diff --git a/.github/ISSUE_TEMPLATE/-zellik--nerisi.md b/.github/ISSUE_TEMPLATE/-zellik--nerisi.md index c50defbc1..4a1d0ef81 100644 --- a/.github/ISSUE_TEMPLATE/-zellik--nerisi.md +++ b/.github/ISSUE_TEMPLATE/-zellik--nerisi.md @@ -15,6 +15,7 @@ Konuyla veya sunduğunuz çözümle ilgili düşündüğünüz diğer alternatif **Katkı sağlama** Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin. +* [ ] Evet, bu iş kaydının bana atanmasını istiyorum. **Kontrol listesi** diff --git a/.github/ISSUE_TEMPLATE/hata-raporu.md b/.github/ISSUE_TEMPLATE/hata-raporu.md new file mode 100644 index 000000000..5f03addcc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/hata-raporu.md @@ -0,0 +1,46 @@ +--- +name: Hata raporu +about: Tespit ettiğiniz hataları, beklenen dışında çalışan özelliklerin bildirimi. + +--- + +**Hatayı ve/veya bug'ı açıklayın** +Kısa ve net bir şekilde hatanın ne olduğunu açıklanmalıdır. + +**Tekrarlama adımları** +Hatayı tekrarlama için takip edilmesi gereken adımlar: +1. X adresinde bulunan Y sayfasına git. +2. Z butonuna tıkla. +3. Sayfayı en alta kaydır. +4. Görünmesi gereken metin K iken L görünüyor. + +**Olması gereken davranış** +Kısa ve net bir şekilde hata yerine olması gereken uygulama davranışının ne olması gerektiğini açıklayınız. Örn: X kaydı silindiğinde Z sayfasına yönlendirme yapılmalı. + +**Ekran görüntüleri** +Varsa, hatayı görmeyi kolaylaştırılacak ekran görüntüleri. + +**Hatanın alındığı ortam:** +Belirtmediğiniz taktirde Ubuntu 18.04/Debian 9 üzerinde güncel Google Chrome kullandığınız varsayılacaktır. + - OS: [e.g. iOS, Windows 10] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Hata mobil ortamda alınıyorsa:** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Katkı sağlama** +Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin. +* [ ] Evet, bu iş kaydının bana atanmasını istiyorum. + +**Kontrol listesi** + +* [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? +* [ ] [Katkı sağlama dökümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? +* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? + +**Ek içerik** +Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. From fed846761a491c0241bb5819f4a6a3ac5f85be4c Mon Sep 17 00:00:00 2001 From: msdundar Date: Wed, 15 Aug 2018 20:06:57 +0300 Subject: [PATCH 07/27] Update issue templates --- ...{-zellik--nerisi.md => ozellik-onerisi.md} | 0 .github/ISSUE_TEMPLATE/tasarim-onerisi.md | 30 +++++++++++++++++++ 2 files changed, 30 insertions(+) rename .github/ISSUE_TEMPLATE/{-zellik--nerisi.md => ozellik-onerisi.md} (100%) create mode 100644 .github/ISSUE_TEMPLATE/tasarim-onerisi.md diff --git a/.github/ISSUE_TEMPLATE/-zellik--nerisi.md b/.github/ISSUE_TEMPLATE/ozellik-onerisi.md similarity index 100% rename from .github/ISSUE_TEMPLATE/-zellik--nerisi.md rename to .github/ISSUE_TEMPLATE/ozellik-onerisi.md diff --git a/.github/ISSUE_TEMPLATE/tasarim-onerisi.md b/.github/ISSUE_TEMPLATE/tasarim-onerisi.md new file mode 100644 index 000000000..af4f35a8e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/tasarim-onerisi.md @@ -0,0 +1,30 @@ +--- +name: Tasarım önerisi +about: Uygulamanın varolan UI/UX'i ile ilgili değişiklik önerisi. Varolan sayfalardaki sorunlar için 'hata raporu', varolmayan sayfalar için 'özellik önerisi' template'ini kullanın. + +--- + +**Bu tasarım önerisi bir problemle mi ilgili? Lütfen detaylıca açıklayınız.** +Tasarım önerinizi detaylıca açıklayınız. Mevcut tasarımdaki sorun ne, bu tasarıma neden ihtiyaç var, tasarım neleri iyileştirecek gibi sorunların tanımı açıkça yapılmalıdır. + +**Sizin çözümünüz** +Kısa ve net bir şekilde konuyla ilişkili olarak sizin önerileriniz neler, sizin öneriniz kabul edilirse neler olacak, uygulama da neler iyileşecek açıklayınız. + +**Diğer alternatifler** +Konuyla veya sunduğunuz çözümle ilgili düşündüğünüz diğer alternatifler neler? Konuya dahil olarak kişiler neleri göz önünde bulundurmalı? + +**Katkı sağlama** +Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin. +* [ ] Evet, bu iş kaydının bana atanmasını istiyorum. + +**Ekran görüntüleri** +Mevcut tasarım ve sizin önerinizi karşılaştırabileceğimiz ekran görüntüleri. + +**Kontrol listesi** + +* [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? +* [ ] [Katkı sağlama dökümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? +* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? + +**Ek içerik** +Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. From cc9e03c1b9e3663228c72c5214cdf2439fd9184b Mon Sep 17 00:00:00 2001 From: msdundar Date: Wed, 15 Aug 2018 20:41:21 +0300 Subject: [PATCH 08/27] Add pull request templates --- .../CODE_OF_CONDUCT.md | 0 .../{hata-raporu.md => bug-report.md} | 4 +-- ...{tasarim-onerisi.md => design-proposal.md} | 2 +- ...ozellik-onerisi.md => feature-proposal.md} | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 26 +++++++++++++++++++ 5 files changed, 30 insertions(+), 4 deletions(-) rename CODE_OF_CONDUCT.md => .github/CODE_OF_CONDUCT.md (100%) rename .github/ISSUE_TEMPLATE/{hata-raporu.md => bug-report.md} (91%) rename .github/ISSUE_TEMPLATE/{tasarim-onerisi.md => design-proposal.md} (94%) rename .github/ISSUE_TEMPLATE/{ozellik-onerisi.md => feature-proposal.md} (93%) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to .github/CODE_OF_CONDUCT.md diff --git a/.github/ISSUE_TEMPLATE/hata-raporu.md b/.github/ISSUE_TEMPLATE/bug-report.md similarity index 91% rename from .github/ISSUE_TEMPLATE/hata-raporu.md rename to .github/ISSUE_TEMPLATE/bug-report.md index 5f03addcc..59cb26969 100644 --- a/.github/ISSUE_TEMPLATE/hata-raporu.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -5,7 +5,7 @@ about: Tespit ettiğiniz hataları, beklenen dışında çalışan özelliklerin --- **Hatayı ve/veya bug'ı açıklayın** -Kısa ve net bir şekilde hatanın ne olduğunu açıklanmalıdır. +Kısa ve net bir şekilde hatanın ne olduğu açıklanmalıdır. **Tekrarlama adımları** Hatayı tekrarlama için takip edilmesi gereken adımlar: @@ -39,7 +39,7 @@ Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiy **Kontrol listesi** * [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? -* [ ] [Katkı sağlama dökümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? +* [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? * [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? **Ek içerik** diff --git a/.github/ISSUE_TEMPLATE/tasarim-onerisi.md b/.github/ISSUE_TEMPLATE/design-proposal.md similarity index 94% rename from .github/ISSUE_TEMPLATE/tasarim-onerisi.md rename to .github/ISSUE_TEMPLATE/design-proposal.md index af4f35a8e..0c3a7adee 100644 --- a/.github/ISSUE_TEMPLATE/tasarim-onerisi.md +++ b/.github/ISSUE_TEMPLATE/design-proposal.md @@ -23,7 +23,7 @@ Mevcut tasarım ve sizin önerinizi karşılaştırabileceğimiz ekran görünt **Kontrol listesi** * [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? -* [ ] [Katkı sağlama dökümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? +* [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? * [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? **Ek içerik** diff --git a/.github/ISSUE_TEMPLATE/ozellik-onerisi.md b/.github/ISSUE_TEMPLATE/feature-proposal.md similarity index 93% rename from .github/ISSUE_TEMPLATE/ozellik-onerisi.md rename to .github/ISSUE_TEMPLATE/feature-proposal.md index 4a1d0ef81..c13228847 100644 --- a/.github/ISSUE_TEMPLATE/ozellik-onerisi.md +++ b/.github/ISSUE_TEMPLATE/feature-proposal.md @@ -20,7 +20,7 @@ Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiy **Kontrol listesi** * [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? -* [ ] [Katkı sağlama dökümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? +* [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? * [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? **Ek içerik** diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..6a23466dd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,26 @@ +**Bu PR'in yaptığı işi/değişikliği ve bu işi/değişikliği neden yaptığını açıklayın** +Kısa ve net bir şekilde bu PR'e neden ihtiyaç var, ne iş/değişiklik yapıyor açıklanmalıdır. + +**İlgili iş kayıtları** +Bu PR ile ilişkili iş kayıtlarının ID numaraları (örn. #123456, #123457, #123458) listeleyin. + +**Kapatılacak iş kayıtları** +Bu PR merge edildiğinde hangi iş kayıtları kapatılacak, `Closes`, `Fixes` gibi anahtar kelimeler ile birlikte ID numaralarını listeleyin. + +**Veritabanı** +Bu PR merge edildiğinde veritabanı üzerinde herhangi bir değişiklik (migration, seed, add/drop vb.) yapılması gerekecek mi açıklayın. + +**Sistem/Ops** +Bu PR merge edildiğinde sunucular üzerinde bir değişiklik (paket kurulması, buildpack eklenmesi vb.) yapılması gerekecekmi, açıklayın. + +**Kontrol listesi** + +* [ ] Açtığınız PR'in başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? +* [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? +* [ ] Yaptığınız iş/değişikliği dokümante ettiniz mi? +* [ ] Yaptığınız iş/değişikliğin testlerini yazdınız mı? +* [ ] Test coverage oranını kontrol ettiniz mi? +* [ ] Kod kalitesi (karma) ve test suite dahil olmak üzere tüm entegre kontroller başarıyla geçiyor mu? + +**Ek içerik** +Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. From eac0a0722ed5c842b1b96453108e5220e589a3f4 Mon Sep 17 00:00:00 2001 From: msdundar Date: Wed, 15 Aug 2018 20:44:34 +0300 Subject: [PATCH 09/27] Update pull request template --- .github/PULL_REQUEST_TEMPLATE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 6a23466dd..a0888959e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -21,6 +21,9 @@ Bu PR merge edildiğinde sunucular üzerinde bir değişiklik (paket kurulması, * [ ] Yaptığınız iş/değişikliğin testlerini yazdınız mı? * [ ] Test coverage oranını kontrol ettiniz mi? * [ ] Kod kalitesi (karma) ve test suite dahil olmak üzere tüm entegre kontroller başarıyla geçiyor mu? +* [ ] Kendinizi bu PR'e assign ettiniz mi? +* [ ] Yaptığınız iş/değişiklik ile ilgili **tüm** proje üyelerinden review talep ettiniz mi? +* [ ] Gerekli etiketleri (bug, feature-step, help-wanted vb.) girdiniz mi? **Ek içerik** Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. From 87b4575583b36f68470bbc1bd2c24be20008e1f7 Mon Sep 17 00:00:00 2001 From: msdundar Date: Wed, 15 Aug 2018 21:32:12 +0300 Subject: [PATCH 10/27] Add codeowners for auto required reviews --- .github/CODEOWNERS | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..9aae485d8 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,22 @@ +# OPs team +.circleci @msdundar @roktas @huseyin @ecylmz +.vagrant @roktas @huseyin @ecylmz @sinansh +.buildpacks @roktas @huseyin @ecylmz @sinansh +.ruby-version @roktas @isubas @ecmelkytz @huseyin @ecylmz @sinansh +Vagrantfile @roktas @huseyin @ecylmz @sinansh + +# Guides, rules and docs +.github @msdundar @roktas @isubas @ecmelkytz +.codebeatsettings @msdundar @roktas @isubas @ecmelkytz +.gitignore @msdundar @roktas @isubas @ecmelkytz +.rubocop.yml @msdundar @roktas @isubas @ecmelkytz +/docs/ @msdundar @roktas @isubas @ecmelkytz + +# Back-end +/app/ @msdundar @ecmelkytz @dilara @isubas @sinansh +/config/ @msdundar @ecmelkytz @dilara @isubas @sinansh +/db/ @msdundar @ecmelkytz @dilara @isubas @sinansh +/lib/ @msdundar @ecmelkytz @dilara @isubas @sinansh +/test/ @msdundar @ecmelkytz @dilara @isubas @sinansh +Gemfile @msdundar @ecmelkytz @dilara @isubas @sinansh +package.json @msdundar @ecmelkytz @dilara @isubas @sinansh \ No newline at end of file From a96d181858686fec1a9a6d05328b6cfe436ec109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emre=20Can=20Y=C4=B1lmaz?= Date: Wed, 15 Aug 2018 22:15:45 +0300 Subject: [PATCH 11/27] add ruby version to Gemfile --- .circleci/parallel_workflow.yml | 18 ++++++------------ .ruby-version | 1 - Gemfile | 1 + 3 files changed, 7 insertions(+), 13 deletions(-) delete mode 100644 .ruby-version diff --git a/.circleci/parallel_workflow.yml b/.circleci/parallel_workflow.yml index 57ec5d93f..3ae2a6607 100644 --- a/.circleci/parallel_workflow.yml +++ b/.circleci/parallel_workflow.yml @@ -59,12 +59,10 @@ jobs: <<: *rails_environment - image: circleci/postgres:9.5.14-alpine <<: *postgres_environment + environment: + CUSTOM_RUBY_VERSION: 2.4.4 steps: - checkout - - run: - name: Echo ruby 2.4.4 - command: | - echo "2.4.4" > .ruby-version - restore_cache: <<: *bundle_keys - run: bundle install --path vendor/bundle @@ -89,12 +87,10 @@ jobs: <<: *rails_environment - image: circleci/postgres:9.6.10-alpine <<: *postgres_environment + environment: + CUSTOM_RUBY_VERSION: 2.5.1 steps: - checkout - - run: - name: Echo ruby 2.5.1 - command: | - echo "2.5.1" > .ruby-version - restore_cache: <<: *bundle_keys - run: bundle install --path vendor/bundle @@ -119,12 +115,10 @@ jobs: <<: *rails_environment - image: circleci/postgres:10.5-alpine <<: *postgres_environment + environment: + CUSTOM_RUBY_VERSION: 2.6.0-preview2 steps: - checkout - - run: - name: Echo ruby 2.6.0-preview2 - command: | - echo "2.6.0-preview2" > .ruby-version - restore_cache: <<: *bundle_keys - run: bundle install --path vendor/bundle diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index 4fd0fe3cd..000000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.5.1 \ No newline at end of file diff --git a/Gemfile b/Gemfile index 6ebc2e06b..2a26a9389 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,7 @@ # frozen_string_literal: true source 'https://rubygems.org' +ruby ENV['CUSTOM_RUBY_VERSION'] || '2.5.1' # core gem 'bootsnap', '>= 1.1.0', require: false # Reduces boot times through caching; required in config/boot.rb From f5d122d1c21c95038a6565484fbf66ebc1ecf25f Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 02:35:15 +0300 Subject: [PATCH 12/27] Complete documents for development, git and ops Add project description to README. Add guides for branch, issue, review, commit, etc. Add guides for development and ops. Add a detailed contribution guide. --- README.md | 142 +++--------------------------- docs/CONTRIBUTING.md | 87 ++++++++++++++++++ docs/development/app-upgrade.md | 7 ++ docs/development/installation.md | 52 +++++++++++ docs/development/rake-task.md | 12 +++ docs/development/test-coverage.md | 7 ++ docs/development/third-parties.md | 3 + docs/git/branch.md | 72 +++++++++++++++ docs/git/code-review.md | 0 docs/git/commit.md | 83 +++++++++++++++++ docs/git/issue.md | 80 +++++++++++++++++ docs/git/pull-request.md | 29 ++++++ docs/git/review.md | 9 ++ docs/ops/dokku.md | 35 ++++++++ 14 files changed, 487 insertions(+), 131 deletions(-) create mode 100644 docs/CONTRIBUTING.md create mode 100644 docs/development/app-upgrade.md create mode 100644 docs/development/installation.md create mode 100644 docs/development/rake-task.md create mode 100644 docs/development/test-coverage.md create mode 100644 docs/development/third-parties.md create mode 100644 docs/git/branch.md create mode 100644 docs/git/code-review.md create mode 100644 docs/git/commit.md create mode 100644 docs/git/issue.md create mode 100644 docs/git/pull-request.md create mode 100644 docs/git/review.md create mode 100644 docs/ops/dokku.md diff --git a/README.md b/README.md index 9760036df..d89634e8f 100644 --- a/README.md +++ b/README.md @@ -2,146 +2,26 @@ [![Beta](https://omu.sh/assets/badge/beta.svg)](https://omu.sh "BAUM Beta") [![Maintainability](https://api.codeclimate.com/v1/badges/32e076b5cbd4ee545f48/maintainability)](https://codeclimate.com/github/omu/nokul/maintainability) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/2c7333e690454bbd99811c8860f08d2b)](https://www.codacy.com/app/msdundar/nokul?utm_source=github.com&utm_medium=referral&utm_content=omu/nokul&utm_campaign=Badge_Grade) [![CircleCI](https://circleci.com/gh/omu/nokul/tree/master.svg?style=svg&circle-token=a25e63abc0e1e6c074750d9b2ce5396e3e279d82)](https://circleci.com/gh/omu/nokul/tree/master) [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/2c7333e690454bbd99811c8860f08d2b)](https://www.codacy.com/app/msdundar/nokul?utm_source=github.com&utm_medium=referral&utm_content=omu/nokul&utm_campaign=Badge_Coverage) [![Known Vulnerabilities](https://snyk.io/test/github/omu/nokul/badge.svg)](https://snyk.io/test/github/omu/nokul) -## Prerequisites +[Nokul](https://github.com/omu/nokul) aims to become a complete solution for universities that face many challanges while trying to manage all the complex procedures of a university online. -- [NodeJS (>=10.x)](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) -- [Yarn](https://yarnpkg.com/lang/en/docs/install/#debian-stable) -- [Redis](https://packages.debian.org/search?keywords=redis) -- [libvips](https://github.com/jcupitt/libvips/wiki/Build-for-Ubuntu) +Dealing with ill-structured processes of a university is hard, especially when they backed with complex legal procedures. Many universities facing similar issues when it comes to automating things, and moving face-to-face operations to online. Nokul aims to remediate these wounds by taking a Turkish university with more than 70 web services, 50K students and 4K employees as a case. -## Setup +## Installation -- Database configuration file reads username, password and host settings from environment variables. Make sure to define these environment variables before setting up the project. Add environment variables to your .bashrc, .zshrc, .bash_profile etc.: +See [installation guide](https://github.com/omu/nokul/development/installation.md) for details. -``` -export RDS_USERNAME=PostgreSQL username -export RDS_PASSWORD=PostgreSQL password -export RDS_HOSTNAME=localhost -``` +## Contributing -In order to communicate with third parties, you also need to setup some credentials which are stored in `credentials.yml.enc`. For obtaining credentials you can either download a copy of `master.key` into config/ or you can define the key value as `RAILS_MASTER_KEY` environment variable. For adding new secrets run the command show, below after you obtain the key: - -```ruby -bin/rails credentials:edit -``` - -- Install GEM dependencies: - -```bash -bundle -``` - -- Install asset dependencies: - -```bash -yarn install -``` - -- Create database, migrate tables and run the seed data: - -```bash -rake db:setup -``` - -- If you are setting up again, when you already have previous databases: - -```bash -rake db:reset -``` - -`reset` is equivalent of `rake db:drop & rake db:setup`. - -- [IN PRODUCTION]. Generate secrets for the app and define them as SECRET_KEY_BASE environment variable: - -```bash -RAILS_ENV=production rake secret -export SECRET_KEY_BASE=GENERATED_SECRET_VALUE -``` +See [contributing guide](https://github.com/omu/nokul/CONTRIBUTING.md) for details. ## HowTo -See [Wiki pages](https://github.com/omu/nokul/wiki) for how-to documents. - -## Code Quality - -- Rake task named as 'quality' checks for code smells. - -```bash -rake quality:ruby # rubocop [ruby] + rubycritic [with reek] -rake quality:rails # rubocop [ruby + rails] -rake quality:all # ruby and rails tasks together -``` - -## Security - -- Rake task named as 'security' checks for security issues: - -```bash -rake security:all # runs bundler-audit and brakeman -``` - -## Tests - -Run tests with: +See [/docs](https://github.com/omu/nokul/docs) for other documents. -```bash -rake test -``` - -## Test Coverage - -Currently coverage reports are being send to Codacy automatically in CI environment. If you would like to generate a local report for yourself (using SimpleCov), you simply need to run tests and view the generated file in `coverage/index.html.erb`: - -```ruby -rake test -``` - -## Rake Tasks - -- [OPTIONAL]. `setup` or `seed` already does it, but if you want to externally create YOKSIS references, departments, country codes and academic staffs inside your app, run the tasks shown below: - -```bash -rake yoksis:fetch_references -rake yoksis:fetch_academic_staff -rake yoksis:import_departments -rake yoksis:import_yoksis_country_codes -``` - -* `fetch` prefix has used for API operations, `import` prefix has used for local CSV importing operations. - -## Third-Parties - -Third-party integrations are located under `app/services/foo/v1`. Follow up /docs subfolder (ie. `app/services/foo/v1/docs` for SOAPUI templates. - -## Background Jobs - -This app heavily uses Sidekiq (as ActiveJob objects) for performing background jobs. Make sure to start sidekiq for processing queues: - -``` -bundle exec sidekiq -q high -q low -``` - -**`bundle exec` is not optional here! Otherwise you will receive errors.**. - -Sidekiq also provides a fancy [web interface](http://localhost:3000/sidekiq/). - -## App Upgrade - -```bash -bin/rails app:update -``` - -**Run only if you know what you are doing!** - -## Local Dokku Deployment +## License -```bash -vagrant up paas --provider=virtualbox -RAILS_MASTER_KEY=xxxxxxxxx paas # only on the first deploy -git push dokku :master -dokku run rails db:seed -``` +See [LICENSE](LICENSE.md) for details. -## License +## Authors -Read [LICENSE](LICENSE.md) for details. +Thanks to [contributors](https://github.com/omu/nokul/graphs/contributors). \ No newline at end of file diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 000000000..65bdde827 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,87 @@ +# Katkı Sunma Rehberi + +Bu rehber bu projeye (bundan sonra [nokul](https://github.com/omu/nokul) olarak anılacaktır) gönüllü katkı sunmak isteyenlere ve projede görevli olarak çalışanlara yönelik hazırlanmıştır. + +## Beyanat + +Nokul'a katkı yaparak Ondokuz Mayıs Üniversitesi [bilişim politikalarını](https://github.com/omu/resmi/tree/master/bilgi-g%C3%BCvenli%C4%9Fi-politikas%C4%B1) ve gelecekte eklenmesi muhtemel yeni politikaları peşinen kabul ettiğinizi beyan etmiş sayılırsınız. + +Nokul uygulamanın tüm hakları Ondokuz Mayıs Üniversitesi'ne aittir. Uygulamaya yapacağınız katkıların hakları da Ondokuz Mayıs Üniversitesi'ne ait olacaktır. Nokul projesinde çalışma sorumluluğu bulunmayan kişilerin yaptıkları katkılar tamamen gönüllü katkı olarak değerlendirilecek olup, bu kişilerin yaptıkları katkılar için telif hakkı, ücret, projenin herhangi bir yerinde isminin anılması (mention) gibi herhangi bir istekte bulunma hakları bulunmamaktadır. `Katkı sağlayan` olarak kullanıcı adınız, isminiz, sağladığınız katkı ve katkı sağladığınız tarih gibi bilgiler bu projede herkese açık bir biçimde görüntülenebilir. Nokul'a yapacağınız katkılar Ondokuz Mayıs Üniversitesi'ne ait olacağı için gelecekte yaptığınız katkıların projeden kaldırılmasını talep etme hakkınız bulunmamaktadır. + +Nokul projesi gelecekte herkese açık (public) bir proje olmayı garanti etmemektedir. Projenin görünürlüğü Ondokuz Mayıs Üniversitesi tarafından gerekli görüldüğü taktirde gizli (private) duruma çekilebilir. Bu durumda sağladığınız katkının kullanılmaya devam edeceğini peşinen kabul etmiş sayılırsınız. Projenin güncel lisansı [LICENCE.md](https://github.com/omu/nokul/blob/develop/LICENSE.md) dosyasında açıkça sunulmuştur. + +## Güvenlik Açığı Bildirimi + +Bu projede herhangi bir güvenlik açığı tespit ederseniz lütfen `baum@omu.edu.tr` adresinden bildirim yapınız. Güvenlik açığı bildirimleri için herkese açık olan `issues` sayfasını kullanmayınız. + +## Neye katkı yapabilirim? + +İsteyen herkes, projede görebildiği herşeye katkı yapabilir. Projenin kaynak koduna, tasarımına, dökümanlarına, açık iş kayıtlarına, açık katkı taleplerine (pull request) ve diğer kısımlarına katkı yapabilirsiniz. + +----------------------------------- + +## Katkı Sağlama İş Akışı + +### İş Kayıtları (Issue) +------------------------ + +- Projeye katkı sağlamadan önce, katkı sağlamak istediğiniz konuyla ilişkili bir iş kaydı açın. İş kaydı bulunmayan ve bir iş kaydına atıfta bulunmayan pull request'ler değerlendirmeye alınmayabilir veya geç değerlendirmeye alınabilir. + +- [Issue](https://github.com/omu/nokul/docs/git/issue.md) kurallarını dikkatlice gözden geçirin. + +### Geliştirme Öncesi +--------------------- + +Bu projenin bazı kısımları gönüllülerden gelecek katkılara açık olmakla birlikte, projenin bazı kısımları bir takım kısıtlı servisler ile haberleşmekte ve çeşitli erişim bilgilerine ihtiyaç duymaktadır. + +- Sırlar + +Organizasyon sırları kurumsal bir `keepass` hesabında tutulmaktadır. Bu sırlara erişim için [sistem grubu](https://github.com/orgs/omu/teams/ops) ile iletişime geçebilirsiniz. + +- Master.key ve API Anahtarları + +Proje sırları `credentials.yml.enc` dosyasında tutulmaktadır. Bu dosyaya erişim bilgilerini [sistem grubu](https://github.com/orgs/omu/teams/ops)'ndan veya `keepass` üzerinden edindikten sonra RAILS_MASTER_KEY isimli bir ortam değişkeni ile anahtarı sisteminize tanımlayın. + +- VPN + +Harici servisler yalnızca BAUM-VPN'e açıktır. Geliştirme yaparken ihtiyaç duyacağınız bu servisleri kullanmak için BAUM-VPN'e bağlı olmalısınız. VPN erişimi için [sistem grubu](https://github.com/orgs/omu/teams/ops) ile iletişime geçin. Tüm geliştirme süreciniz boyunca ve testleri çalıştırırken mutlaka BAUM-VPN'e bağlı olun. + +### Geliştirme Süreci +--------------------- + +- Projeye yazma yetkiniz varsa projeyi klonlayın, yazma yetkiniz yoksa projeyi `fork` edin. + +- [Branch](https://github.com/omu/nokul/docs/git/branch.md) kurallarını dikkatlice gözden geçirin. + +- Proje klonunda veya kendi `fork`'unuzda, branch kurallarını dikkate alan bir branch oluşturun: `git checkout -b my-awesome-feature` + +- [Kurulum dokümanını](https://github.com/omu/nokul/docs/development/installation.md) takip ederek projenin kurulumunu yapın. + +- Arka plan görevleri için `sidekiq`'i çalıştırın (`bundle exec sidekiq -q high -q low`). + +- Kod üzerinde değişiklikleri yapın. + +- [Commit](https://github.com/omu/nokul/docs/git/commit.md) kurallarını dikkatlice gözden geçirin. + +- Değişiklerinizi commit'leyin. + +- [Test Coverage](https://github.com/omu/nokul/docs/development/test-coverage.md) kurallarını dikkatlice gözden geçirin. + +- Yaptığınız değişikliğin test coverage oranını düşürmediğinden emin olun. + +- Değişikliklerinizi push etmeden önce çeşitli kontrolleri gerçekleştiren `pr` rake task'ini çalıştırın (`rake pr`): + +- `pr` task'inden hata aldıysanız öncelikle bunları çözün ve commitleyin. + +- `pr` task'i başarıyla çalışıyorsa commit'lerinizi kendi branch'inize push edin. + +### Geliştirme Sonrası +---------------------- + +- [Pull Request](https://github.com/omu/nokul/docs/git/pull-request.md) kurallarını dikkatlice gözden geçirin. + +- Geliştirmenizi tamamladıktan sonra kendi branch'inizden `develop`'a doğru bir `pull request` (diğer adıyla `merge request`) açın. + +- [Review](https://github.com/omu/nokul/docs/git/review.md) kurallarını dikkatlice gözden geçirin. + +- Pull request'inizin review sürecinin tamamlanmasını bekleyin. diff --git a/docs/development/app-upgrade.md b/docs/development/app-upgrade.md new file mode 100644 index 000000000..1e552108d --- /dev/null +++ b/docs/development/app-upgrade.md @@ -0,0 +1,7 @@ +# App Upgrade + +**Run only if you know what you are doing!** + +```bash +bin/rails app:update +``` diff --git a/docs/development/installation.md b/docs/development/installation.md new file mode 100644 index 000000000..a1a7d542c --- /dev/null +++ b/docs/development/installation.md @@ -0,0 +1,52 @@ +# Installation + +## Prerequisites +- [NodeJS (>=10.x)](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) +- [Yarn](https://yarnpkg.com/lang/en/docs/install/#debian-stable) +- [Redis](https://packages.debian.org/search?keywords=redis) +- [libvips](https://github.com/jcupitt/libvips/wiki/Build-for-Ubuntu) + + +## Installation + +- Database configuration file reads username, password and host settings from environment variables. Make sure to define these environment variables before setting up the project. Add environment variables to your .bashrc, .zshrc, .bash_profile etc.: + +``` +export RDS_USERNAME=PostgreSQL username +export RDS_PASSWORD=PostgreSQL password +export RDS_HOSTNAME=localhost +``` + +In order to communicate with third parties, you also need to setup some credentials which are stored in `credentials.yml.enc`. For obtaining credentials you can either download a copy of `master.key` into config/ or you can define the key value as `RAILS_MASTER_KEY` environment variable. For adding new secrets run the command show, below after you obtain the key: + +```ruby +bin/rails credentials:edit +``` + +- Install GEM dependencies: + +```bash +bundle +``` + +- Install asset dependencies: + +```bash +yarn install +``` + +- Create database, migrate tables and run the seed data: + +```bash +rake db:create +rake db:migrata +rake db:seed +``` + +- If you are setting up again, when you already have previous databases: + +```bash +rake db:reset +``` + +`reset` is equivalent of `rake db:drop & rake db:setup`. diff --git a/docs/development/rake-task.md b/docs/development/rake-task.md new file mode 100644 index 000000000..58883f7aa --- /dev/null +++ b/docs/development/rake-task.md @@ -0,0 +1,12 @@ +# Rake Tasks + +- [OPTIONAL]. `setup` or `seed` already does it, but if you want to externally create YOKSIS references, departments, country codes and academic staffs inside your app, run the tasks shown below: + +```bash +rake yoksis:fetch_references +rake yoksis:fetch_academic_staff +rake yoksis:import_departments +rake yoksis:import_yoksis_country_codes +``` + +* `fetch` prefix has used for API operations, `import` prefix has used for local CSV importing operations. diff --git a/docs/development/test-coverage.md b/docs/development/test-coverage.md new file mode 100644 index 000000000..a4e015396 --- /dev/null +++ b/docs/development/test-coverage.md @@ -0,0 +1,7 @@ +# Test Coverage + +Currently coverage reports are being send to Codacy automatically in CI environment. If you would like to generate a local report for yourself (using SimpleCov), you simply need to run tests and view the generated file in `coverage/index.html.erb`: + +```ruby +rake test +``` diff --git a/docs/development/third-parties.md b/docs/development/third-parties.md new file mode 100644 index 000000000..e41ecfa00 --- /dev/null +++ b/docs/development/third-parties.md @@ -0,0 +1,3 @@ +# APIs and Integrations + +Third-party integrations are located under `app/services/foo/v1`. Follow up /docs subfolder (ie. `app/services/foo/v1/docs` for SOAPUI templates. diff --git a/docs/git/branch.md b/docs/git/branch.md new file mode 100644 index 000000000..a30751cdd --- /dev/null +++ b/docs/git/branch.md @@ -0,0 +1,72 @@ +# Branch + +## Branch Yapısı +---------------- + +- Projenin yayında bulunan sürümü `master` branch'inde bulunmaktadır. +- Projenin aktif geliştirme alan kararlı sürümü `develop` branch'inde bulunmaktadır. +- `develop` branch'i sürüm yöneticisi (release manager) tarafından uygun görülen zamanlarda `master`'a merge edilerek yayına alınır. Dolayısıyla `develop` branch'i her zaman `master`'dan daha güncel ve önde gitmektedir. +- Geliştiriciler sağlayacakları her türlü katkı için (ufak bir imla düzeltmesi dahil) kendi branch'lerini oluşturmalıdır. +- `master` ve `develop` branch'leri protected branch'ler olup geliştiriciler bu branch'lere doğrudan commit push edemezler. +- Geliştiriciler kendi branch'lerini daima `develop`'tan oluşturmalıdırlar. `master` branch'i geriden geldiği için, yeni branch oluştururken kaynak olarak kullanılmamalıdır. +- Özetle bu proje `develop` -> `gelistici-branchi` -> `develop` -> `master` akışını izlemektedir. + +## Branch İsimlendirme +---------------------- + +- Branch isimleri tümü küçük harf, Türkçe karakter içermeyen (branch ismi Türkçe olabilir) metinlerden oluşmalıdır. + +``` +YANLIŞ: Redesign-Login-Page +DOĞRU: redesign-login-page +``` + +- Sürüm numarasını ifade edebileceği için branch isimleri rakam ile başlamamalıdır. + +``` +YANLIŞ: 1-den-baslat +DOĞRU: birden-baslat +``` + +- Branch isimleri kısa, net ve anlaşılır olmalıdır. + +``` +YANLIŞ: fix-errors +DOĞRU: fix-auth-error-in-ldap +``` + +- Branch isimlerinde kelimeler `tire` ile ayrılmalıdır. + +``` +YANLIŞ: redesign_login_page +DOĞRU: redesign-login-page +``` + +## Branch'i Güncel Tutma +------------------------ + +Üzerinde geliştirme yaptığınız ve `develop`'tan oluşturduğunuz branch yine `develop`'a merge edileceği için - üzerinde çalıştığınız branch'i düzenli olarak `develop`'la güncelleyiniz. Aksi halde conflict oluşabilir. Aşağıda bu süreç basitçe gösterilmiştir: + +```bash +git checkout kendi-branchiniz # kendi branch'inizde çalışırken +git add --all # commitlenmemiş değişiklik varsa +git commit -m 'Commit my changes' # önce commitleyin +git checkout develop # sonra develop'a geçerek +git pull origin develop # develop'un en güncel halini çekin +git checkout kendi-branchiniz # kendi branch'inize dönün +git merge develop # develop'un güncel halini branch'inize merge edin +git commit -m 'Fix conflicts' # (varsa) conflict'leri düzeltin +``` + +> `develop` ile güncel tutulmamış hiç bir branch conflict oluşturmasa dahi, branch'inizi güncellemediğiniz sürece merge edilmeyecektir. + +## Acil Seviyeli Branch +----------------------- + +Bir branch'in önce `develop`'a merge edilmesi, daha sonra `develop`'un ise `master`'a merge edilmesi ve `deploy` işleminin (ortalama ~15 dakika) gerçekleşmesi CI entegrasyonlarının hızına bağlı olarak yaklaşık 30 dakika sürmektedir. + +Bir güvenlik açığının düzeltilmesi gibi acilen yayına alınması gereken bir değişiklik için doğrudan `master`'a PR açabilirsiniz. Ancak hiç bir sebeple, **asla** doğrudan `master`'a push yapmayınız. + +## Branch'lerin Silinmesi + +Tüm geliştirici branch'leri `develop`'a merge edildikten sonra anında silinmektedir. Henüz hakkında PR açılmamış ve WIP durumundaki branch'ler uzun süre (~ 3 ay) aktiflik göstermediği taktirde silinebilir. diff --git a/docs/git/code-review.md b/docs/git/code-review.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/git/commit.md b/docs/git/commit.md new file mode 100644 index 000000000..3216f0eba --- /dev/null +++ b/docs/git/commit.md @@ -0,0 +1,83 @@ +# Commit + +- Her bir commit'in kendi içerisinde anlamsal bir bütünlüğe sahip olması için özen gösterin. Yaptığınız tüm değişiklikleri tek bir commit mesajı ile commitlemeyin. + +- Her bir commit yalnızca tek anlamsal değişikliği ifade etmeli. Örneğin hem bir bug'ı düzelttiniz, hem de renki hatalı olan bir butonun rengini düzelttiyseniz bunları ayrı ayrı commitleyin. + +- Erken ve sık aralıklarla commit edin. Küçük ve bağımsız commitlerin anlaşılması ve eski haline döndürülmesi bir şeylerin yanlış gitmesi durumunda daha kolaydır. + +- Commit mesajı yazarken terminal değil editör kullanın: + +``` +YANLIŞ: git commit -m 'Foo bar lorem ipsum' +DOĞRU: git commit +``` + +Güzel bir commit mesajının 7 altın kuralını takip edin: + +1. Commit başlığı ve gözdesini boş bir satırla ayırın +1. Commit başlığını 72 karakterle sınırlayın +1. Başlığın ilk harfini büyük harf yapın +1. Başlık cümlesini nokta işareti ile bitirmeyin +1. Başlıkta emir kipi kullanın +1. Commit gövdesini 72 karakterle sınırlayın +1. Commit gövdesinde ne, neden ve nasıl sorularını yanıtlayacak şekilde commit'in yaptığı işi açıklayın. + + +## Commit Başlığı +----------------- + +- Commit başlığını daima büyük harfle başlatıp küçük harflerle devam ettirin. + +``` +YANLIŞ: ADD AUTHORIZATION ROLES AS ADMIN AND USER +YANLIŞ: add authorization roles as admin and user +DOĞRU: Add authorization roles as admin and user +``` + +- Commit başlığını en fazla 72 karakterden, tercihen ise 50 karakterden oluşacak şekilde düzenleyin. + +``` +YANLIŞ: Add authorization roles as admin and user, so that people can get roles in other controllers and admins can assign roles to other users. + +DOĞRU: Add authorization roles as admin and user +``` + +- Başlıkta emir kipi kullanın + +``` +YANLIŞ: Geliştiriciler için issue dokümanı ekledim +DOĞRU: Geliştiriciler için issue dokümanı ekle +``` + +- Başlık cümlesini nokta işareti ile bitirmeyin + +``` +YANLIŞ: Geliştiriciler için issue dokümanı ekle. +DOĞRU: Geliştiriciler için issue dokümanı ekle +``` + + +# Commit Gövdesi +---------------- + +- Commit gövdesini satır uzunluklarını (72 karakter) ihlal etmeden dilediğinizce uzun yazabilirsiniz. + +- Commit gövdesinde ilgili iş kaydına (varsa) mention yapın ve diğer referansları da belirtin. + +``` +Lorem ipsum dolor sit amet + +Morbi ante magna, ultricies et tortor vel, sensus vitae. +Vestibulum ut rhoncus neque. Praesent quis odio mauris. +Donec at fermentum neque. Mauris in tellus posuere risus. +Felis vitae, porttitor quam. Morbi eget pulvinar mi. +Cras tincidunt fringilla nulla, vitae imperdiet justo +molestie sed. Pellentesque congue metus non dolor magna +aliquam. Morbi vel magna est. Aliquam risus arcu. + +Fixes: #9991 +Closes: #9992 +Revolves: #9993 +References: #9994, #9995, #9996 +``` diff --git a/docs/git/issue.md b/docs/git/issue.md new file mode 100644 index 000000000..22f527bbc --- /dev/null +++ b/docs/git/issue.md @@ -0,0 +1,80 @@ +# Issue + +Bu projenin tüm geliştirme süreçleri Github Issues ile yönetilmektedir. Issue bir sorun/hata bildirimi olabileceği gibi, bir özellik önerisi, değişiklik talebi de olabilir. Issue listesi kişisel/kurumsal bir to-do list değildir. Issue'lar oluşturulurken bir takım kurallara uyulmalıdır. + +Sağlayacağınız katkıyla alakalı olarak bir iş kaydı açarak: + +- Konunun proje ekibinin gündemine girmesini, +- Konu üzerinde önce tartışılmasını ve önerilerin alınmasını, +- Konunun öncelik durumunun tartışmaya açılmasını, +- Konuyla ilgili çalışan/çalışmayı düşünen diğer gönüllüleri bilgilendirmeyi, + +sağlamış olacaksınız. + +Açtığınız iş kaydı üzerinde karara bağlanan iş, size atandıktan sonra ilgili geliştirmeye yapmaya başlayabilirsiniz. Pull request açmadan önce iş kaydı açarak: + +- PR'e review yapanları bu PR'in ne iş yaptığı ve buna neden gerek olduğu, +- PR'in kabul edilmesi durumunda CHANGELOG'a ne yazılacağını ve sürüm notlarında nelerden bahsedileceği + +konusuda önceden bildirmiş olursunuz. + +Sağlamayı düşündüğünüz katkı proje ekibinin gündeminde bulunmayabilir. Sizin için çok önemli görünen bir konu, proje ekibinin öncelikleri arasında yer almayabilir. Sizin çözüm getirdiğinize inandığınız bir konu, gelecekte başka bir yöntemle çözülmek üzere bekletiliyor olabilir, bir başka geliştirici zaten bu konu üstünde çalışıyor olabilir. Tüm bu durumların önüne geçmek için öncelikle issue açmanız gerekmektedir. + +## Issue Başlığı +---------------- + +- İş kaydının başlığı emir kipinde yazılmış bir **sorun veya öneri** cümlesi olmalıdır. Örneğin: + +``` +YANLIŞ: Katkı sağlama rehberi hazırla +DOĞRU: Katkı sağlama rehberi eksik +DOĞRU: Katkı sağlama rehberi hazırlanmalı +``` + +Hatalı örnekte başlık sorun/öneri cümlesi içermiyor. + +``` +YANLIŞ: Dokku ve ruby +DOĞRU: Dokku'da yanlış ruby versiyonu kuruluyor +``` + +Hatalı örnekte sorun açıklanmıyor, başlık okuyana herhangi bir şey ifade etmiyor. + +``` +YANLIŞ: Ders: Ders ekleme sırasında okutulma türünün seçilmesini sağla +DOĞRU: Ders ekleme sırasında dersin okutulma türü seçilebilmeli +``` + +Hatalı örnekte `prefix` yoluyla kategorizasyona gidilmiş. Eğer bir seri halinde iş kayıtları mevcutsa bunlar bir `milestone` altında gruplanmalı. Ayrıca _seçilmesini sağla_ kelimeleri bir probleme/öneriye işaret etmiyor. _seçilebilmeli_ kelimesi şuan bu özelliğin mevcut olmadığına işaret etmekte. Hatalı örneğin başlığı bir PR için uygun, issue için değil. + +``` +YANLIŞ: Ülke, şehir ve ilçe seçimlerinde dynamic select'e ihtiyaç var +DOĞRU: Ülke, şehir ve ilçe seçimleri kullanışsız +``` + +Hatalı örnekte issue içerisinde konuşulması ve detaylandırılması gereken `dynamic_select` başlıkta verilmiş. Ülke, şehir ve ilçe seçimlerinin kullanışsız olması bir problem, bunun detayları ve olası çözümleri issue içerisinde konuşulmalı. + +- İş kaydı bir to-do list değildir + +``` +YANLIŞ: DutyValidator ve EmployeeValidator'ü iyileştir +DOĞRU: DutyValidator ve EmployeeValidator'ü hatalı çalışıyor +DOĞRU: DutyValidator ve EmployeeValidator'de eksik validasyonlar var +``` + +Hatalı örneğin başlığı bir PR için uygun, issue için uygun değil. + +- İş kaydının yalnızca ilk harfi büyük harf olmalı + +``` +YANLIŞ: KATKI SAĞLAMA REHBERİ HAZIRLA +YANLIŞ: katkı sağlama rehberi hazırla +DOĞRU: Katkı sağlama rehberi hazırla +``` + +İstisna olarak farklı stide yazılması gereken model isimleri (UserDuty), kısaltmalar (YÖK, MEB vb.) hala büyük harfle yazılmalıdır. + +## Issue Gövdesi +---------------- + +Proje `.github` dizininde bulunan issue template'lerinden biri seçilerek iş kayıtları girilmelidir. Çok istisnai bir durum olmadıkça template'ler olmadan iş kaydı girilmemelidir. \ No newline at end of file diff --git a/docs/git/pull-request.md b/docs/git/pull-request.md new file mode 100644 index 000000000..8a2fbf39d --- /dev/null +++ b/docs/git/pull-request.md @@ -0,0 +1,29 @@ +# Pull Request + +- Değişiklikleri küçük parçalar halinde pull request açarak gönderin. Devasa bir pull request review edilmesinin uzun süreceğini ve hataya daha açık olduğunu unutmayın. + +- Yaptığınız geliştirmeleri, kendi branch'inizden `develop`'a doğru `pull request`, diğer adıyla `merge request` açarak gönderin. + +- Pull request açarken projenin pull request şablonunu kullanın. Mevcut pull request şablonu sizi pek çok hatadan kurtaracaktır. + +- Açtığınız pull request'in başlığının ilk harfini büyük, diğer harfleri küçük yazın. + +``` +YANLIŞ: ADD AUTHORIZATION ROLES AS ADMIN AND USER +YANLIŞ: add authorization roles as admin and user +DOĞRU: Add authorization roles as admin and user +``` + +- Başlıkta emir kipi kullanın + +``` +YANLIŞ: Geliştiriciler için issue dokümanı ekledim +DOĞRU: Geliştiriciler için issue dokümanı ekle +``` + +- Başlık cümlesini nokta işareti ile bitirmeyin + +``` +YANLIŞ: Geliştiriciler için issue dokümanı ekle. +DOĞRU: Geliştiriciler için issue dokümanı ekle +``` diff --git a/docs/git/review.md b/docs/git/review.md new file mode 100644 index 000000000..24546bd17 --- /dev/null +++ b/docs/git/review.md @@ -0,0 +1,9 @@ +# Review Süreci + +- Açtığınız pull request'in merge edilebilmesi için en az 2 kişi tarafından review edilmesi ve onaylanması gerekir. + +- Açtığınız pull request'lere varsayılan olarak [bazı geliştiriciler](https://github.com/omu/nokul/.github/CODEOWNERS) otomatik olarak atanacaktır. + +- Geliştiricilerin yoğunluğuna ve açtığınız pull request'in büyüklüğüne bağlı olarak review süreci bir kaç gün alabilir. + +- Sizden bir pull request'e review yapmanız istendiğinde bunu en geç 2 gün içerisinde tamamlayın. Siz başkalarını bekletirseniz, başkaları da sizi bekletir, unutmayın. \ No newline at end of file diff --git a/docs/ops/dokku.md b/docs/ops/dokku.md new file mode 100644 index 000000000..6e9c5bb57 --- /dev/null +++ b/docs/ops/dokku.md @@ -0,0 +1,35 @@ +# Dokku + +Nadiren dahi olsa uygulamanın deploy edildiği makinaya operatör olarak erişmeniz gerekebilir. Makinaya erişim sağlamadan önce **geçerli bir sebebiniz** olduğundan emin olun. Ne yaptığınızdan emin değilseniz [sistem grubu](https://github.com/orgs/omu/teams/ops) ile iletişime geçin. Dokku instance'ına erişmenin sıkça kullanılan iki yolu vardır. + +## dokku-cli ile (tercih edilen) + +``` +gem install dokku-cli +git remote add beta dokku@app.omu.sh:nokul +``` + +Daha sonra `--remote-beta` ile komutları çalıştırabilirsiniz: + +``` +dokku run rails c --remote=beta +dokku run rake some_namespace:some_rake_task --remote=beta +``` + +gibi. + +## Operatör olarak + +``` +ssh op@193.140.28.240 +dokku enter nokul web +``` + +## Local Dokku Deployment + +```bash +vagrant up paas --provider=virtualbox +RAILS_MASTER_KEY=xxxxxxxxx paas # only on the first deploy +git push dokku :master +dokku run rails db:seed +``` From 6a54ef8338beee7953576a67acd1d952fffb36d2 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 02:38:47 +0300 Subject: [PATCH 13/27] Add a single task to run before opening PR Join three or more rake tasks that need to be run before opening a PR into one. --- lib/tasks/pr.rake | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 lib/tasks/pr.rake diff --git a/lib/tasks/pr.rake b/lib/tasks/pr.rake new file mode 100644 index 000000000..a84994f99 --- /dev/null +++ b/lib/tasks/pr.rake @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +desc 'Runs all necessary checks before a pull request' +task :pr do + Rake::Task['quality:rails'].invoke + Rake::Task['security:all'].invoke + sh 'bundle exec rake test' +end From 3b5ffe0d172ddb3a7c7d19513a477131bb43cc5c Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 02:54:41 +0300 Subject: [PATCH 14/27] Move wiki pages to /docs. --- docs/CONTRIBUTING.md | 2 + docs/development/mernis-test-data.md | 70 +++++++++ docs/how-to/arel-queries.md | 34 +++++ docs/how-to/navigate-units.md | 209 +++++++++++++++++++++++++++ docs/how-to/navigate-users.md | 65 +++++++++ docs/style/validations.md | 91 ++++++++++++ 6 files changed, 471 insertions(+) create mode 100644 docs/development/mernis-test-data.md create mode 100644 docs/how-to/arel-queries.md create mode 100644 docs/how-to/navigate-units.md create mode 100644 docs/how-to/navigate-users.md create mode 100644 docs/style/validations.md diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 65bdde827..a251c9963 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -59,6 +59,8 @@ Harici servisler yalnızca BAUM-VPN'e açıktır. Geliştirme yaparken ihtiyaç - Arka plan görevleri için `sidekiq`'i çalıştırın (`bundle exec sidekiq -q high -q low`). +- [Stil](https://github.com/omu/nokul/docs/style/) kurallarını dikkatlice gözden geçirin. + - Kod üzerinde değişiklikleri yapın. - [Commit](https://github.com/omu/nokul/docs/git/commit.md) kurallarını dikkatlice gözden geçirin. diff --git a/docs/development/mernis-test-data.md b/docs/development/mernis-test-data.md new file mode 100644 index 000000000..2758ebdef --- /dev/null +++ b/docs/development/mernis-test-data.md @@ -0,0 +1,70 @@ +- Bu dökümanda yer alan T.C. kimlik numarası bilgileri KPS tarafından **test ortamında kullanılabilecek** numaralar olarak belirtilmiştir. + +| Tür | ID Number | KPS Kimlik | KPS Adres | MERNİS Public | +| ----------------------------------------- |:-----------:| ----------:| ---------:| -------------:| +| T.C. Vatandaşı (sağ) | 10570898198 | Evet | Evet | Evet | +| T.C. Vatadanşı (vefat) | 10114899148 | Evet | Evet | Evet | +| T.C. Vatandaşı (vatandaşlıktan çıkan) | 10555885052 | Hayır | Hayır | Hayır | +| Yabancı (sağ) | 99001255472 | Evet | Hayır | Evet | +| Yabancı (vefat) | 99031254452 | Evet | Hayır | Evet | +| Yabancı (vatandaşlık kazanan) | 99007254028 | Evet | Evet | Evet | +| Mavi Kartlı (yabancı) | 10026078778 | Evet | Hayır | Evet | +| Mavi Kartlı (vatandaşlık kazanan) | 14203772848 | Hayır | Hayır | Hayır | + +- Diğer **test ortamı verileri** şu şekildedir: + +``` +Açık TC Vatandaşı 10570898198 +Açık TC Vatandaşı 20047578058 +Açık TC Vatandaşı 30097240140 +Açık TC Vatandaşı 30697214596 +Açık TC Vatandaşı 37423006982 +Açık TC Vatandaşı 37519003918 +Açık TC Vatandaşı 43291304556 +Açık TC Vatandaşı 48163943536 +Açık TC Vatandaşı 52249815310 +Açık TC Vatandaşı 56593662552 +Açık TC Vatandaşı 70336212330 +``` + +``` +Ölüm TC Vatandaşı 10114899148 +Ölüm TC Vatandaşı 21238533962 +Ölüm TC Vatandaşı 25570391136 +Ölüm TC Vatandaşı 30598235836 +Ölüm TC Vatandaşı 33355134052 +Ölüm TC Vatandaşı 33400140410 +Ölüm TC Vatandaşı 33412125832 +Ölüm TC Vatandaşı 33937113000 +Ölüm TC Vatandaşı 41768164580 +Ölüm TC Vatandaşı 46619002738 +Ölüm TC Vatandaşı 63235448634 +``` + +``` +Vatandaşlıktan Çıkma TC Vatandaşı 10555885052 +Vatandaşlıktan Çıkma TC Vatandaşı 19003612844 +Vatandaşlıktan Çıkma TC Vatandaşı 19252596964 +Vatandaşlıktan Çıkma TC Vatandaşı 29713246970 +Vatandaşlıktan Çıkma TC Vatandaşı 30454227456 +Vatandaşlıktan Çıkma TC Vatandaşı 30679226432 +Vatandaşlıktan Çıkma TC Vatandaşı 37279002954 +Vatandaşlıktan Çıkma TC Vatandaşı 37594002448 +Vatandaşlıktan Çıkma TC Vatandaşı 47116986170 +Vatandaşlıktan Çıkma TC Vatandaşı 64975391150 +Vatandaşlıktan Çıkma TC Vatandaşı 75931025484 +``` + +``` +Doğum yeri 30 karakterden büyük 10690894490 +Doğum yeri 30 karakterden büyük 11377858910 +Doğum yeri 30 karakterden büyük 14842759606 +Doğum yeri 30 karakterden büyük 15106743850 +Doğum yeri 30 karakterden büyük 16168715960 +Doğum yeri 30 karakterden büyük 18688625194 +Doğum yeri 30 karakterden büyük 29068267224 +Doğum yeri 30 karakterden büyük 29992245114 +Doğum yeri 30 karakterden büyük 35221062988 +Doğum yeri 30 karakterden büyük 35869055786 +Doğum yeri 30 karakterden büyük 71317178904 +``` \ No newline at end of file diff --git a/docs/how-to/arel-queries.md b/docs/how-to/arel-queries.md new file mode 100644 index 000000000..22fa6c944 --- /dev/null +++ b/docs/how-to/arel-queries.md @@ -0,0 +1,34 @@ +# How To: Arel Queries + +```ruby +Arel::AliasPredication +Arel::ArelError +Arel::Attribute +Arel::Attributes +Arel::Collectors +Arel::Compatibility +Arel::Crud +Arel::DeleteManager +Arel::EmptyJoinError +Arel::Expressions +Arel::FactoryMethods +Arel::InsertManager +Arel::Math +Arel::Node +Arel::Nodes +Arel::OrderPredications +Arel::Predications +Arel::SelectManager +Arel::Table +Arel::TreeManager +Arel::UpdateManager +Arel::Visitors +Arel::WindowPredications +``` + +call them with `.instance_methods` or simply refer to: https://www.rubydoc.info/github/rails/arel/master/Arel/ + +## References + +- https://jacopretorius.net/2016/09/the-mimimum-arel-every-rails-developer-should-know.html +- https://www.calebwoods.com/2015/08/11/advanced-arel-cheat-sheet/ \ No newline at end of file diff --git a/docs/how-to/navigate-units.md b/docs/how-to/navigate-units.md new file mode 100644 index 000000000..3fe0b1aa9 --- /dev/null +++ b/docs/how-to/navigate-units.md @@ -0,0 +1,209 @@ +# How To: Navigate Between Units + +`Unit` model uses [ancestry](https://github.com/stefankroes/ancestry). + +**Children classes of Unit model** can be listed as follows: + +- InterdisciplinaryDiscipline +- InterdisciplinaryDoctoralProgram +- Academy +- Rectorship +- VocationalSchool +- Institute +- Faculty +- UndergraduateProgram +- InterdisciplinaryMasterProgram +- ArtDiscipline +- Discipline +- Department +- ResearchCenter +- DoctoralProgram +- MasterProgram +- ScienceDiscipline +- ProficiencyInArtProgram +- University + +Here is a tree-like unit structure: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+        Sahne Sanatları Bölümü [Department]
+            Bale Anasanat Dalı [ArtDiscipline]
+            Opera Anasanat Dalı [ArtDiscipline]
+
+ +## Navigating Between Units + +- Return **all records of a unit type**: + +```ruby +Unit.university.all +Unit.faculty.all +Unit.department.all +... +``` + +You can navigate your way between units with `parent`, `root`, `ancestors`, `children`, `siblings`, `subtree` and `descendants` methods of ancestry. + +### parent + +```ruby +art_discipline = Unit.art_discipline.first # Kompozisyon Ve Orkestra Şefliği Anasanat Dalı +art_discipline.parent +``` + +will return the parent unit: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+
+ +### root + +```ruby +art_discipline = Unit.art_discipline.first # Kompozisyon Ve Orkestra Şefliği Anasanat Dalı +art_discipline.root +``` + +will return the root unit: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+
+ +### ancestors + +```ruby +art_discipline = Unit.art_discipline.first # Kompozisyon Ve Orkestra Şefliği Anasanat Dalı +art_discipline.ancestors +``` + +will return an array of parents: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+
+ +### children + +```ruby +academy = Unit.academy.first # 19 Mayıs Samsun Devlet Konservatuvarı +academy.children +``` + +will return an array of children: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+        Sahne Sanatları Bölümü [Department]
+            Bale Anasanat Dalı [ArtDiscipline]
+            Opera Anasanat Dalı [ArtDiscipline]
+
+ +### siblings + +```ruby +discipline = Unit.find(116) # Geleneksel Türk Müzikleri Anabilim Dalı +discipline.siblings +``` + +will return an array of siblings: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+        Sahne Sanatları Bölümü [Department]
+            Bale Anasanat Dalı [ArtDiscipline]
+            Opera Anasanat Dalı [ArtDiscipline]
+
+ +### subtree + +```ruby +academy = Unit.academy.first # 19 Mayıs Samsun Devlet Konservatuvarı +academy.subtree +``` + +will return an array of sub-units, **including** the main unit: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+        Sahne Sanatları Bölümü [Department]
+            Bale Anasanat Dalı [ArtDiscipline]
+            Opera Anasanat Dalı [ArtDiscipline]
+
+ +### descendants + +```ruby +academy = Unit.academy.first # 19 Mayıs Samsun Devlet Konservatuvarı +academy.descendants +``` + +will return an array of sub-units, **exluding** the main unit: + +
+Ondokuz Mayıs Üniversitesi [University]
+    19 Mayıs Samsun Devlet Konservatuvarı [Academy]
+        Müzik Bölümü [Department]
+            Geleneksel Türk Müzikleri Anabilim Dalı [ScienceDiscipline]
+            Kompozisyon ve Orkestra Şefliği Anasanat Dalı [ArtDiscipline]
+            Üflemeli ve Vurmalı Çalgılar Anasanat Dalı [ArtDiscipline]
+        Sahne Sanatları Bölümü [Department]
+            Bale Anasanat Dalı [ArtDiscipline]
+            Opera Anasanat Dalı [ArtDiscipline]
+
+ +See [ancestry](https://github.com/stefankroes/ancestry) document for more details and other helpers. + +- Return **all sub-units** (faculties, departments, disciplines, everything) of another unit: + +```ruby +Unit.university.first.descendants.units +Unit.faculty.last.descendants.departments +Unit.department.last.descendants.undergraduate_programs +... +``` + +- You can also directly communicate with children classes such as Faculty and Department: + +```ruby +Unit.faculty +Unit.research_center.find_by(yoksis_id: 12345) +Unit.department.find_by(status: 1) +... +``` \ No newline at end of file diff --git a/docs/how-to/navigate-users.md b/docs/how-to/navigate-users.md new file mode 100644 index 000000000..090105698 --- /dev/null +++ b/docs/how-to/navigate-users.md @@ -0,0 +1,65 @@ +# How To: Navigate and Assign Users + +**Some variables to use later:** + +```ruby +bote_yl = Unit.find_by(yoksis_id: 244883) +bote_department = Unit.find_by(yoksis_id: 122154) +institute = Unit.find_by(yoksis_id: 174846) +ce_department = Unit.find_by(yoksis_id: 122184) +baum = Unit.find_by(yoksis_id: 327269) +uzem = Unit.find_by(yoksis_id: 169431) +``` + +**Create users:** + +```ruby +serhat = User.create!(id_number: 12345678912, email: 'msdundars@gmail.com', password: '123456', password_confirmation: '123456') +roktas = User.create!(id_number: 98765432198, email: 'roktas@gmail.com', password: '123456', password_confirmation: '123456') +``` + +**Create studentship and employee:** + +```ruby +serhat_ceit_student = Student.create(student_number: '1234567', user: serhat, unit: bote_yl) +serhat_ra = Employee.create(title: Title.find_by(code: 1590), user: serhat) +roktas_dr = Employee.create(title: Title.find_by(code: 1567), user: roktas) +``` + +**Add some duties:** + +```ruby +serhat_ra.duties.create(temporary: false, start_date: '01.01.2015', unit: institute) +serhat_ra.duties.create(temporary: true, start_date: '01.01.2015', end_date: '01.01.2017', unit: bote_department) +serhat_ra.duties.create(temporary: true, start_date: '01.01.2017', end_date: '01.01.2019', unit: uzem) + +roktas_dr.duties.create(temporary: false, start_date: '01.01.2005', unit: ce_department) +roktas_dr.duties.create(temporary: true, start_date: '01.01.2017', unit: uzem) +roktas_dr.duties.create(temporary: true, start_date: '01.01.2017', unit: baum) +``` + +**Add some positions:** + +```ruby +mudur_yard = AdministrativeFunction.find_by(code: 29) +roktas.duties.first.positions.create(administrative_function: mudur_yard) +``` + +**All valid queries:** + +```ruby +serhat.duties # tüm görevler +serhat.duties.tenure # kadrolu ifa ettiği tüm görevler +serhat.duties.temporary # geçici görevlendirmeyle ifa ettiği tüm görevler +serhat.units # görevli olduğu tüm birimler +serhat.units.department # görevli olduğu tüm bölümler +serhat.units.research_centers # görevli olduğu araştırma merkezleri +serhat.employees # tüm personellikleri +serhat.employees.active # aktif tüm personellikleri +uzem.employees # uzem'in tüm personelleri +uzem.eployees.active # uzem'in aktif tüm personelleri +uzem.students # uzem'in tüm öğrencileri +bote_yl.students # böte yüksek lisans'ın tüm öğrencileri +serhat.administrative_functions # tüm yönetici pozisyonları +uzem.administrative_functions # uzem'de bulunan tüm yönetici pozisyonları +``` diff --git a/docs/style/validations.md b/docs/style/validations.md new file mode 100644 index 000000000..448db6c61 --- /dev/null +++ b/docs/style/validations.md @@ -0,0 +1,91 @@ +# Validations + +Her bir `attribute` için ayrı bir validates satırı ve aynı satırda validasyonlar. Eğer satır 120 satırı geçiyorsa, sığmayan validasyon hizalı şekilde alt satıra. + +Öncelik sırası: + +1. presence, +1. uniqueness, +1. numericality || length +1. diğerleri + +**Good:** + +```ruby +validates :type, presence: true +validates :district, presence: true +validates :unit_status, presence: true +validates :unit_instruction_type, presence: true +validates :yoksis_id, presence: true, uniqueness: true, numericality: { only_integer: true } +validates :name, presence: true, uniqueness: { scope: %i[ancestry unit_status_id] } +validates :duration, numericality: { only_integer: true }, allow_blank: true +``` + +**Bad: [compact]** + +```ruby +validates :email, :id_number, :date_of_birth + presence: true, uniqueness: true +validates :id_number, + numericality: { only_integer: true } +``` + +**Bad: [compact + her bir validasyon ayrı satırda]** + +```ruby +validates :email, :id_number, :date_of_birth + presence: true, + uniqueness: true +validates :id_number, + numericality: { only_integer: true } +``` + +**Bad: [her bir validasyon türü için ayrı bir validates satırı, validasyonlar ayrı satırda]** + +```ruby +validates :email, :id_number, :date_of_birth + presence: true +validates :email, :id_number, :date_of_birth + uniqueness: true +validates :id_number, + numericality: { only_integer: true } +``` + +**Bad: [her bir attribute için ayrı bir validates satırı, validasyonlar ayrı satırda]** + +```ruby +validates :email, + presence: true, uniqueness: true +validates :id_number, + presence: true, uniqueness: true, numericality: { only_integer: true } +validates :date_of_birth, + presence: true, uniqueness: true +``` + +**Bad: [her bir attribute için ayrı bir validates satırı, her bir validasyon ayrı satırda]** + +```ruby +validates :email, + presence: true, + uniqueness: true +validates :id_number, + presence: true, + uniqueness: true, + numericality: { only_integer: true } +validates :date_of_birth, + presence: true, + uniqueness: true +``` + +**Bad: [her bir attribute ve validasyon türü için ayrı bir validates satırı]** + +```ruby +validates :email, presence: true +validates :email, uniqueness: true +validates :id_number, presence: true +validates :id_number, uniqueness: true +validates :id_number, numericality: { only_integer: true } +validates :date_of_birth, presence: true +validates :date_of_birth, uniqueness: true +validates :email, uniqueness: true +``` \ No newline at end of file From bbae7f7168f9e57b0e3cfd16a7897a40ef86b09c Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 03:00:58 +0300 Subject: [PATCH 15/27] Add foreign citizen test data to docs --- docs/development/mernis-test-data.md | 82 +++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/docs/development/mernis-test-data.md b/docs/development/mernis-test-data.md index 2758ebdef..f73c1e0ef 100644 --- a/docs/development/mernis-test-data.md +++ b/docs/development/mernis-test-data.md @@ -1,3 +1,5 @@ +# MERNIS Test Verisi + - Bu dökümanda yer alan T.C. kimlik numarası bilgileri KPS tarafından **test ortamında kullanılabilecek** numaralar olarak belirtilmiştir. | Tür | ID Number | KPS Kimlik | KPS Adres | MERNİS Public | @@ -11,7 +13,7 @@ | Mavi Kartlı (yabancı) | 10026078778 | Evet | Hayır | Evet | | Mavi Kartlı (vatandaşlık kazanan) | 14203772848 | Hayır | Hayır | Hayır | -- Diğer **test ortamı verileri** şu şekildedir: +## Türk Vatandaşı Test Verileri ``` Açık TC Vatandaşı 10570898198 @@ -67,4 +69,82 @@ Doğum yeri 30 karakterden büyük 29992245114 Doğum yeri 30 karakterden büyük 35221062988 Doğum yeri 30 karakterden büyük 35869055786 Doğum yeri 30 karakterden büyük 71317178904 +``` + +## Yabancı Uyruklu Test Verileri + +``` +Açık Yabancı Kişi 99001255472 +Açık Yabancı Kişi 99007041482 +Açık Yabancı Kişi 99013255026 +Açık Yabancı Kişi 99019041036 +Açık Yabancı Kişi 99022040972 +Açık Yabancı Kişi 99028040754 +Açık Yabancı Kişi 99055251994 +Açık Yabancı Kişi 99082251028 +Açık Yabancı Kişi 99085250974 +Açık Yabancı Kişi 99091252412 +Açık Yabancı Kişi 99169250708 +``` + +``` +Ölüm Yabancı Kişi 99031254452 +Ölüm Yabancı Kişi 99562240962 +``` + +``` +Vatandaşlık Kazanan Yabancı Kişi 99007254028 +Vatandaşlık Kazanan Yabancı Kişi 99166036190 +Vatandaşlık Kazanan Yabancı Kişi 99202034920 +Vatandaşlık Kazanan Yabancı Kişi 99412245994 +Vatandaşlık Kazanan Yabancı Kişi 99427245484 +Vatandaşlık Kazanan Yabancı Kişi 99496025352 +Vatandaşlık Kazanan Yabancı Kişi 99580022410 +Vatandaşlık Kazanan Yabancı Kişi 99721229876 +Vatandaşlık Kazanan Yabancı Kişi 99724017784 +Vatandaşlık Kazanan Yabancı Kişi 99733229420 +Vatandaşlık Kazanan Yabancı Kişi 99736017338 +``` + +``` +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 10026078778 +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 20512917108 +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 29392266818 +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 31396200194 +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 60649390658 +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 61306368744 +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 66070167104 +Açık Mavi Kartlı Kütüğüne Kayıtlı Kişi 67048177392 +Ölüm Mavi Kartlı Kütüğüne Kayıtlı Kişi 14233775406 +Ölüm Mavi Kartlı Kütüğüne Kayıtlı Kişi 99679231242 +Ölüm Mavi Kartlı Kütüğüne Kayıtlı Kişi 99745229074 +``` + +``` +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 14203772848 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 16519686888 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 17083682948 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 20141884840 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 23023472340 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 24073447494 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 24619430188 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 29167264490 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 29974237496 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 31181509648 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 31184509584 +Vatandaşlık Kazanan Mavi Kartlı Kütüğüne Kayıtlı Kişi 33196137946 +``` + +``` +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 10197025724 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 10714743254 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 11358033374 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 19976299158 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 20137964068 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 20320957952 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 20398955348 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 28160062454 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 28183665076 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 33956232744 +Açık Mavikart Cüzdan Bilgisi Olan Mavi Kartlılar Kütüğüne Kayıtlı Kişi 36415787236 ``` \ No newline at end of file From eb7e37809134862d3fcffddb0ce0c8396af52d32 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 03:26:00 +0300 Subject: [PATCH 16/27] Add fit-commit as development dependency --- Gemfile | 1 + Gemfile.lock | 4 ++++ docs/development/installation.md | 2 +- docs/git/commit.md | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 6ebc2e06b..275c50158 100644 --- a/Gemfile +++ b/Gemfile @@ -70,6 +70,7 @@ end group :development do gem 'bullet' gem 'bundler-audit' + gem 'fit-commit' gem 'letter_opener' gem 'listen', '>= 3.0.5', '< 3.2' gem 'spring' diff --git a/Gemfile.lock b/Gemfile.lock index f839fcb0d..ca6361c46 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -149,6 +149,8 @@ GEM faraday_middleware (0.12.2) faraday (>= 0.7.4, < 1.0) ffi (1.9.25) + fit-commit (3.8.0) + swearjar (~> 1.0) font-awesome-rails (4.7.0.4) railties (>= 3.2, < 6.0) friendly_id (5.2.4) @@ -334,6 +336,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) + swearjar (1.2.1) thor (0.20.0) thread_safe (0.3.6) tilt (2.0.8) @@ -389,6 +392,7 @@ DEPENDENCIES devise dotenv-rails email_address + fit-commit font-awesome-rails friendly_id (~> 5.2.0) groupdate diff --git a/docs/development/installation.md b/docs/development/installation.md index a1a7d542c..c0384c18d 100644 --- a/docs/development/installation.md +++ b/docs/development/installation.md @@ -39,7 +39,7 @@ yarn install ```bash rake db:create -rake db:migrata +rake db:migrate rake db:seed ``` diff --git a/docs/git/commit.md b/docs/git/commit.md index 3216f0eba..26267c9e7 100644 --- a/docs/git/commit.md +++ b/docs/git/commit.md @@ -1,5 +1,7 @@ # Commit +- Projeyi `bundle` ettikten sonra `fit-commit` git hook'larını kurun: `fit-commit install` + - Her bir commit'in kendi içerisinde anlamsal bir bütünlüğe sahip olması için özen gösterin. Yaptığınız tüm değişiklikleri tek bir commit mesajı ile commitlemeyin. - Her bir commit yalnızca tek anlamsal değişikliği ifade etmeli. Örneğin hem bir bug'ı düzelttiniz, hem de renki hatalı olan bir butonun rengini düzelttiyseniz bunları ayrı ayrı commitleyin. From 27974727e4aad2c799bf480d1746a57dd719628a Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 04:53:22 +0300 Subject: [PATCH 17/27] Fix wrong CI cache keys Cache keys without a checksum of gemfile.lock or yarn.lock cause a very broad type of caching, which may be misleading. --- .circleci/config.yml | 14 ++-- .circleci/parallel_workflow.yml | 95 ++++++++++++------------- .circleci/sequential_basic_workflow.yml | 17 ++--- 3 files changed, 60 insertions(+), 66 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2890d7418..7941b874b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,13 +25,11 @@ defaults: &defaults restore_bundle: &restore_bundle keys: - nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - - nokul-bundle-{{ .Branch }} - - nokul-bundle + - nokul-bundle-{{ checksum "Gemfile.lock" }} restore_yarn: &restore_yarn keys: - nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - - nokul-yarn-{{ .Branch }} - - nokul-yarn + - nokul-yarn-{{ checksum "yarn.lock" }} repository: &repository key: nokul-repo-{{ .Environment.CIRCLE_SHA1 }} @@ -67,6 +65,10 @@ jobs: key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} paths: - vendor/bundle + - save_cache: + key: nokul-bundle-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle bundle_assets: <<: *ruby_2_5_1 steps: @@ -81,6 +83,10 @@ jobs: key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} paths: - node_modules/ + - save_cache: + key: nokul-yarn-{{ checksum "yarn.lock" }} + paths: + - node_modules/ rake_test: <<: *ruby_2_5_1 steps: diff --git a/.circleci/parallel_workflow.yml b/.circleci/parallel_workflow.yml index 3ae2a6607..a211d6643 100644 --- a/.circleci/parallel_workflow.yml +++ b/.circleci/parallel_workflow.yml @@ -18,37 +18,30 @@ rails_environment: &rails_environment BUNDLE_JOBS: 4 # cache keys -bundle_keys: &bundle_keys +restore_bundle_keys: &restore_bundle_keys keys: - nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - - nokul-bundle-{{ .Branch }} - - nokul-bundle -yarn_keys: &yarn_keys + - nokul-bundle-{{ checksum "Gemfile.lock" }} +restore_yarn_keys: &restore_yarn_keys keys: - nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - - nokul-yarn-{{ .Branch }} - - nokul-yarn - -# common flow steps -build_steps: &build_steps - - restore_cache: - <<: *bundle_keys - - run: bundle install --path vendor/bundle - - save_cache: - key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - paths: - - vendor/bundle - - restore_cache: - <<: *yarn_keys - - run: bin/yarn install - - save_cache: - key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - paths: - - node_modules/ - - run: bundle exec rake quality:rails - - run: bundle exec rake security:all - - run: bundle exec rake db:migrate - - run: bundle exec rake test + - nokul-yarn-{{ checksum "yarn.lock" }} +save_bundle_keys: &save_bundle_keys + key: nokul-bundle-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle +save_bundle_branch_keys: &save_bundle_branch_keys + key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle +save_yarn_keys: &save_yarn_keys + key: nokul-yarn-{{ checksum "yarn.lock" }} + paths: + - node_modules/ +save_yarn_branch_keys: &save_yarn_branch_keys + key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} + paths: + - node_modules/ # build jobs version: 2 @@ -64,19 +57,19 @@ jobs: steps: - checkout - restore_cache: - <<: *bundle_keys + <<: *restore_bundle_keys - run: bundle install --path vendor/bundle - save_cache: - key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - paths: - - vendor/bundle + <<: *save_bundle_keys + - save_cache: + <<: *save_bundle_branch_keys - restore_cache: - <<: *yarn_keys + <<: *restore_yarn_keys - run: bin/yarn install - save_cache: - key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - paths: - - node_modules/ + <<: *save_yarn_keys + - save_cache: + <<: *save_yarn_branch_keys - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate @@ -92,19 +85,19 @@ jobs: steps: - checkout - restore_cache: - <<: *bundle_keys + <<: *restore_bundle_keys - run: bundle install --path vendor/bundle - save_cache: - key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - paths: - - vendor/bundle + <<: *save_bundle_keys + - save_cache: + <<: *save_bundle_branch_keys - restore_cache: - <<: *yarn_keys + <<: *restore_yarn_keys - run: bin/yarn install - save_cache: - key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - paths: - - node_modules/ + <<: *save_yarn_keys + - save_cache: + <<: *save_yarn_branch_keys - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate @@ -120,19 +113,19 @@ jobs: steps: - checkout - restore_cache: - <<: *bundle_keys + <<: *restore_bundle_keys - run: bundle install --path vendor/bundle - save_cache: - key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - paths: - - vendor/bundle + <<: *save_bundle_keys + - save_cache: + <<: *save_bundle_branch_keys - restore_cache: - <<: *yarn_keys + <<: *restore_yarn_keys - run: bin/yarn install - save_cache: - key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - paths: - - node_modules/ + <<: *save_yarn_keys + - save_cache: + <<: *save_yarn_branch_keys - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate diff --git a/.circleci/sequential_basic_workflow.yml b/.circleci/sequential_basic_workflow.yml index 499499f38..71d412ac8 100644 --- a/.circleci/sequential_basic_workflow.yml +++ b/.circleci/sequential_basic_workflow.yml @@ -23,14 +23,11 @@ jobs: - restore_cache: keys: - gem-cache-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - - gem-cache-{{ .Branch }} - - gem-cache + - gem-cache-{{ checksum "Gemfile.lock" }} - restore_cache: keys: - yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} - - yarn-packages-{{ .Branch }} - - yarn-packages-master - - yarn-packages + - yarn-packages-{{ checksum "yarn.lock" }} - run: bundle install --path vendor/bundle - run: bin/yarn install @@ -40,19 +37,17 @@ jobs: paths: - vendor/bundle - save_cache: - key: gem-cache-{{ .Branch }} + key: gem-cache-{{ checksum "Gemfile.lock" }} paths: - vendor/bundle - save_cache: - key: gem-cache + key: yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} paths: - - vendor/bundle + - node_modules/ - save_cache: - name: Save Yarn Package Cache - key: yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} + key: yarn-packages-{{ checksum "yarn.lock" }} paths: - node_modules/ - - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate From c2be898f57e85e332161c7fe5381571f012100f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emre=20Can=20Y=C4=B1lmaz?= Date: Thu, 16 Aug 2018 11:25:06 +0300 Subject: [PATCH 18/27] keep .ruby-version file --- .circleci/parallel_workflow.yml | 18 ++++++++++++------ .ruby-version | 1 + Gemfile | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 .ruby-version diff --git a/.circleci/parallel_workflow.yml b/.circleci/parallel_workflow.yml index 3ae2a6607..57ec5d93f 100644 --- a/.circleci/parallel_workflow.yml +++ b/.circleci/parallel_workflow.yml @@ -59,10 +59,12 @@ jobs: <<: *rails_environment - image: circleci/postgres:9.5.14-alpine <<: *postgres_environment - environment: - CUSTOM_RUBY_VERSION: 2.4.4 steps: - checkout + - run: + name: Echo ruby 2.4.4 + command: | + echo "2.4.4" > .ruby-version - restore_cache: <<: *bundle_keys - run: bundle install --path vendor/bundle @@ -87,10 +89,12 @@ jobs: <<: *rails_environment - image: circleci/postgres:9.6.10-alpine <<: *postgres_environment - environment: - CUSTOM_RUBY_VERSION: 2.5.1 steps: - checkout + - run: + name: Echo ruby 2.5.1 + command: | + echo "2.5.1" > .ruby-version - restore_cache: <<: *bundle_keys - run: bundle install --path vendor/bundle @@ -115,10 +119,12 @@ jobs: <<: *rails_environment - image: circleci/postgres:10.5-alpine <<: *postgres_environment - environment: - CUSTOM_RUBY_VERSION: 2.6.0-preview2 steps: - checkout + - run: + name: Echo ruby 2.6.0-preview2 + command: | + echo "2.6.0-preview2" > .ruby-version - restore_cache: <<: *bundle_keys - run: bundle install --path vendor/bundle diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 000000000..73462a5a1 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.5.1 diff --git a/Gemfile b/Gemfile index 2a26a9389..14ef99f95 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true source 'https://rubygems.org' -ruby ENV['CUSTOM_RUBY_VERSION'] || '2.5.1' +ruby File.read('.ruby-version') # core gem 'bootsnap', '>= 1.1.0', require: false # Reduces boot times through caching; required in config/boot.rb From 4a359a2d9e3b511b0baf7890c587fd949d86d980 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 14:39:16 +0300 Subject: [PATCH 19/27] Decrease parallism from four to one CircleCI is offering x4 parallelism for free, but we hit quickly to the container time limit with x4 parallelism. --- .circleci/config.yml | 6 ------ .circleci/parallel_workflow.yml | 1 - 2 files changed, 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7941b874b..3501bd939 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,11 +15,6 @@ rails_environment: &rails_environment RDS_PASSWORD: nokul RDS_HOSTNAME: localhost RDS_PORT: 5432 - BUNDLE_JOBS: 4 - -# flow defaults -defaults: &defaults - parallelism: 4 # cache keys restore_bundle: &restore_bundle @@ -35,7 +30,6 @@ repository: &repository # build image ruby_2_5_1: &ruby_2_5_1 - <<: *defaults docker: - image: circleci/ruby:2.5.1-node-browsers <<: *rails_environment diff --git a/.circleci/parallel_workflow.yml b/.circleci/parallel_workflow.yml index e9534164c..7fef080d8 100644 --- a/.circleci/parallel_workflow.yml +++ b/.circleci/parallel_workflow.yml @@ -15,7 +15,6 @@ rails_environment: &rails_environment RDS_PASSWORD: nokul RDS_HOSTNAME: localhost RDS_PORT: 5432 - BUNDLE_JOBS: 4 # cache keys restore_bundle_keys: &restore_bundle_keys From 65ef19c0243711b52504bce10a2aee9aacf849d7 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 14:43:40 +0300 Subject: [PATCH 20/27] Delete users_controller.rb --- test/controllers/users_controller_test.rb | 74 ----------------------- 1 file changed, 74 deletions(-) delete mode 100644 test/controllers/users_controller_test.rb diff --git a/test/controllers/users_controller_test.rb b/test/controllers/users_controller_test.rb deleted file mode 100644 index 3bdef0763..000000000 --- a/test/controllers/users_controller_test.rb +++ /dev/null @@ -1,74 +0,0 @@ -# frozen_string_literal: true - -require 'test_helper' - -class UsersControllerTest < ActionDispatch::IntegrationTest - setup do - sign_in users(:serhat) - @user = users(:john) - end - - test 'should get index' do - get users_path - assert_response :success - assert_select '#add-button', t('users.index.new_user_link') - end - - test 'should get show' do - get user_path(@user) - assert_response :success - end - - test 'should get new' do - get new_user_path - assert_response :success - end - - test 'should create user' do - assert_difference('User.count') do - post users_path params: { - user: { - id_number: '33998445768', - email: 'new_user@gmail.com', - password: '123456' - } - } - end - - user = User.last - - assert_equal '33998445768', user.id_number - assert_redirected_to users_path - assert_equal t('users.create.success'), flash[:notice] - end - - test 'should get edit' do - get edit_user_path(@user) - assert_response :success - assert_select '.card-header strong', t('users.edit.form_title') - end - - test 'should update user' do - user = User.last - patch user_path(user), params: { - user: { - email: 'updated_user@gmail.com' - } - } - - user.reload - - assert_equal 'updated_user@gmail.com', user.email - assert_redirected_to users_path - assert_equal translate('users.update.success'), flash[:notice] - end - - test 'should destroy user' do - assert_difference('User.count', -1) do - delete user_path(User.last) - end - - assert_redirected_to users_path - assert_equal translate('users.destroy.success'), flash[:notice] - end -end From 18837f2d5fa0bfce7bade0f84c611bf932563429 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 14:44:03 +0300 Subject: [PATCH 21/27] Delete _addresses.html.erb --- app/views/users/_addresses.html.erb | 54 ----------------------------- 1 file changed, 54 deletions(-) delete mode 100644 app/views/users/_addresses.html.erb diff --git a/app/views/users/_addresses.html.erb b/app/views/users/_addresses.html.erb deleted file mode 100644 index df3b0e523..000000000 --- a/app/views/users/_addresses.html.erb +++ /dev/null @@ -1,54 +0,0 @@ - - -
- <% if @addresses.any? %> - <% @addresses.each do |address| %> -
-
-
-
- <%= link_to_edit(edit_address_path(address)) %> - <%= link_to_destroy(address) %> -
-
- -
- - - - - - - - - - - - - - - - - -
<%= t('activerecord.attributes.address.name') %> - - <%= fa_icon('gavel', text: t('activerecord.enums.address.names.formal')) if address.formal? %> - <%= fa_icon('address-book', text: t('activerecord.enums.address.names.informal')) if address.informal? %> - -
<%= t('activerecord.attributes.address.phone_number') %><%= address.phone_number %>
<%= t('activerecord.attributes.address.full_address') %><%= address.full_address %>
<%= t('activerecord.attributes.address.district') %><%= address.district.name %> / <%= address.district.city.name %>
-
-
-
- <% end %> - <% else %> -
-
-
-
-
- Kullanıcının adres bilgisi bulunmuyor. MERNİS'ten getir. -
-
-
- <% end %> -
From ff0c1bf63e4ea93b53cf7dbcf521157383493708 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 14:44:19 +0300 Subject: [PATCH 22/27] Delete routes.rb --- config/routes.rb | 95 ------------------------------------------------ 1 file changed, 95 deletions(-) delete mode 100644 config/routes.rb diff --git a/config/routes.rb b/config/routes.rb deleted file mode 100644 index 63603aa15..000000000 --- a/config/routes.rb +++ /dev/null @@ -1,95 +0,0 @@ -# frozen_string_literal: true - -Rails.application.routes.draw do - require 'sidekiq/web' - - root to: 'home#index' - - # devise routes - devise_for :users, path_prefix: 'my', controllers: { - registrations: 'user/registrations', - passwords: 'user/passwords', - sessions: 'user/sessions' - } - - # TODO: will add authorization when ready - authenticate :user do - mount Sidekiq::Web => '/sidekiq' - end - - # Account home page - scope module: :account do - resources :identities, except: [:show] do - get 'save_from_mernis', on: :collection - end - resources :addresses, except: :show do - get 'save_from_mernis', on: :collection - end - end - - # Academic calendars - scope module: :calendar do - resources :academic_calendars - resources :academic_terms, except: :show - resources :calendar_titles, except: :show - resources :calendar_types - end - - resources :units - - scope module: :curriculum do - resources :courses - end - - scope module: :locations do - resources :countries do - resources :cities, except: [:index] do - resources :districts, except: [:show, :index] do - end - end - end - end - - resources :users do - scope module: :account do - resources :employees, except: :index do - resources :duties, except: :index do - resources :positions, except: %i[index show] - end - end - end - end - - scope module: :account do - get '/profile', to: 'profile#edit' - post '/profile', to: 'profile#update' - end - - # public profiles - get '/profiles/:id', to: 'public_profile#show' - get '/profiles/:id/vcard', to: 'public_profile#vcard', as: :profile_vcard - - scope module: :references do - resources :student_disability_types, except: :show - resources :student_drop_out_types, except: :show - resources :student_education_levels, except: :show - resources :student_entrance_point_types, except: :show - resources :student_entrance_types, except: :show - resources :student_grades, except: :show - resources :student_grading_systems, except: :show - resources :student_punishment_types, except: :show - resources :student_studentship_statuses, except: :show - resources :unit_instruction_languages, except: :show - resources :unit_instruction_types, except: :show - resources :unit_statuses, except: :show - resources :unit_types, except: :show - resources :university_types, except: :show - end - - scope module: :studies do - get '/studies', to: 'dashboard#index' - get '/studies/articles', to: 'articles#index' - get '/studies/projects', to: 'projects#index' - get '/studies/certifications', to: 'certifications#index' - end -end From 336ee3d3613a5d43fb54005daaf304883c86248a Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 14:47:59 +0300 Subject: [PATCH 23/27] Revert "Fix cache keys of CircleCI" --- .circleci/config.yml | 20 +++--- .circleci/parallel_workflow.yml | 96 +++++++++++++------------ .circleci/sequential_basic_workflow.yml | 17 +++-- app/views/users/_addresses.html.erb | 54 ++++++++++++++ config/routes.rb | 95 ++++++++++++++++++++++++ 5 files changed, 222 insertions(+), 60 deletions(-) create mode 100644 app/views/users/_addresses.html.erb create mode 100644 config/routes.rb diff --git a/.circleci/config.yml b/.circleci/config.yml index 3501bd939..2890d7418 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,21 +15,29 @@ rails_environment: &rails_environment RDS_PASSWORD: nokul RDS_HOSTNAME: localhost RDS_PORT: 5432 + BUNDLE_JOBS: 4 + +# flow defaults +defaults: &defaults + parallelism: 4 # cache keys restore_bundle: &restore_bundle keys: - nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - - nokul-bundle-{{ checksum "Gemfile.lock" }} + - nokul-bundle-{{ .Branch }} + - nokul-bundle restore_yarn: &restore_yarn keys: - nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - - nokul-yarn-{{ checksum "yarn.lock" }} + - nokul-yarn-{{ .Branch }} + - nokul-yarn repository: &repository key: nokul-repo-{{ .Environment.CIRCLE_SHA1 }} # build image ruby_2_5_1: &ruby_2_5_1 + <<: *defaults docker: - image: circleci/ruby:2.5.1-node-browsers <<: *rails_environment @@ -59,10 +67,6 @@ jobs: key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} paths: - vendor/bundle - - save_cache: - key: nokul-bundle-{{ checksum "Gemfile.lock" }} - paths: - - vendor/bundle bundle_assets: <<: *ruby_2_5_1 steps: @@ -77,10 +81,6 @@ jobs: key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} paths: - node_modules/ - - save_cache: - key: nokul-yarn-{{ checksum "yarn.lock" }} - paths: - - node_modules/ rake_test: <<: *ruby_2_5_1 steps: diff --git a/.circleci/parallel_workflow.yml b/.circleci/parallel_workflow.yml index 7fef080d8..57ec5d93f 100644 --- a/.circleci/parallel_workflow.yml +++ b/.circleci/parallel_workflow.yml @@ -15,32 +15,40 @@ rails_environment: &rails_environment RDS_PASSWORD: nokul RDS_HOSTNAME: localhost RDS_PORT: 5432 + BUNDLE_JOBS: 4 # cache keys -restore_bundle_keys: &restore_bundle_keys +bundle_keys: &bundle_keys keys: - nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - - nokul-bundle-{{ checksum "Gemfile.lock" }} -restore_yarn_keys: &restore_yarn_keys + - nokul-bundle-{{ .Branch }} + - nokul-bundle +yarn_keys: &yarn_keys keys: - nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - - nokul-yarn-{{ checksum "yarn.lock" }} -save_bundle_keys: &save_bundle_keys - key: nokul-bundle-{{ checksum "Gemfile.lock" }} - paths: - - vendor/bundle -save_bundle_branch_keys: &save_bundle_branch_keys - key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - paths: - - vendor/bundle -save_yarn_keys: &save_yarn_keys - key: nokul-yarn-{{ checksum "yarn.lock" }} - paths: - - node_modules/ -save_yarn_branch_keys: &save_yarn_branch_keys - key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} - paths: - - node_modules/ + - nokul-yarn-{{ .Branch }} + - nokul-yarn + +# common flow steps +build_steps: &build_steps + - restore_cache: + <<: *bundle_keys + - run: bundle install --path vendor/bundle + - save_cache: + key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle + - restore_cache: + <<: *yarn_keys + - run: bin/yarn install + - save_cache: + key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} + paths: + - node_modules/ + - run: bundle exec rake quality:rails + - run: bundle exec rake security:all + - run: bundle exec rake db:migrate + - run: bundle exec rake test # build jobs version: 2 @@ -58,19 +66,19 @@ jobs: command: | echo "2.4.4" > .ruby-version - restore_cache: - <<: *restore_bundle_keys + <<: *bundle_keys - run: bundle install --path vendor/bundle - save_cache: - <<: *save_bundle_keys - - save_cache: - <<: *save_bundle_branch_keys + key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle - restore_cache: - <<: *restore_yarn_keys + <<: *yarn_keys - run: bin/yarn install - save_cache: - <<: *save_yarn_keys - - save_cache: - <<: *save_yarn_branch_keys + key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} + paths: + - node_modules/ - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate @@ -88,19 +96,19 @@ jobs: command: | echo "2.5.1" > .ruby-version - restore_cache: - <<: *restore_bundle_keys + <<: *bundle_keys - run: bundle install --path vendor/bundle - save_cache: - <<: *save_bundle_keys - - save_cache: - <<: *save_bundle_branch_keys + key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle - restore_cache: - <<: *restore_yarn_keys + <<: *yarn_keys - run: bin/yarn install - save_cache: - <<: *save_yarn_keys - - save_cache: - <<: *save_yarn_branch_keys + key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} + paths: + - node_modules/ - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate @@ -118,19 +126,19 @@ jobs: command: | echo "2.6.0-preview2" > .ruby-version - restore_cache: - <<: *restore_bundle_keys + <<: *bundle_keys - run: bundle install --path vendor/bundle - save_cache: - <<: *save_bundle_keys - - save_cache: - <<: *save_bundle_branch_keys + key: nokul-bundle-{{ .Branch }}-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle - restore_cache: - <<: *restore_yarn_keys + <<: *yarn_keys - run: bin/yarn install - save_cache: - <<: *save_yarn_keys - - save_cache: - <<: *save_yarn_branch_keys + key: nokul-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }} + paths: + - node_modules/ - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate diff --git a/.circleci/sequential_basic_workflow.yml b/.circleci/sequential_basic_workflow.yml index 71d412ac8..499499f38 100644 --- a/.circleci/sequential_basic_workflow.yml +++ b/.circleci/sequential_basic_workflow.yml @@ -23,11 +23,14 @@ jobs: - restore_cache: keys: - gem-cache-{{ .Branch }}-{{ checksum "Gemfile.lock" }} - - gem-cache-{{ checksum "Gemfile.lock" }} + - gem-cache-{{ .Branch }} + - gem-cache - restore_cache: keys: - yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} - - yarn-packages-{{ checksum "yarn.lock" }} + - yarn-packages-{{ .Branch }} + - yarn-packages-master + - yarn-packages - run: bundle install --path vendor/bundle - run: bin/yarn install @@ -37,17 +40,19 @@ jobs: paths: - vendor/bundle - save_cache: - key: gem-cache-{{ checksum "Gemfile.lock" }} + key: gem-cache-{{ .Branch }} paths: - vendor/bundle - save_cache: - key: yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} + key: gem-cache paths: - - node_modules/ + - vendor/bundle - save_cache: - key: yarn-packages-{{ checksum "yarn.lock" }} + name: Save Yarn Package Cache + key: yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }} paths: - node_modules/ + - run: bundle exec rake quality:rails - run: bundle exec rake security:all - run: bundle exec rake db:migrate diff --git a/app/views/users/_addresses.html.erb b/app/views/users/_addresses.html.erb new file mode 100644 index 000000000..945e2c982 --- /dev/null +++ b/app/views/users/_addresses.html.erb @@ -0,0 +1,54 @@ + + +
+ <% if @addresses.any? %> + <% @addresses.each do |address| %> +
+
+
+
+ <%= link_to_edit(edit_address_path(address)) %> + <%= link_to_destroy(address) %> +
+
+ +
+ + + + + + + + + + + + + + + + + +
<%= t('activerecord.attributes.address.name') %> + + <%= fa_icon('gavel', text: t('activerecord.enums.address.names.formal')) if address.formal? %> + <%= fa_icon('address-book', text: t('activerecord.enums.address.names.other')) if address.informal? %> + +
<%= t('activerecord.attributes.address.phone_number') %><%= address.phone_number %>
<%= t('activerecord.attributes.address.full_address') %><%= address.full_address %>
<%= t('activerecord.attributes.address.district') %><%= address.district.name %> / <%= address.district.city.name %>
+
+
+
+ <% end %> + <% else %> +
+
+
+
+
+ Kullanıcının adres bilgisi bulunmuyor. MERNİS'ten getir. +
+
+
+ <% end %> +
diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 index 000000000..7b24a72ab --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,95 @@ +# frozen_string_literal: true + +Rails.application.routes.draw do + require 'sidekiq/web' + + root to: 'home#index' + + # devise routes + devise_for :users, controllers: { + registrations: 'user/registrations', + passwords: 'user/passwords', + sessions: 'user/sessions' + } + + # TODO: will add authorization when ready + authenticate :user do + mount Sidekiq::Web => '/sidekiq' + end + + # Account home page + scope module: :account do + resources :identities, except: [:show] do + get 'save_from_mernis', on: :collection + end + resources :addresses, except: :show do + get 'save_from_mernis', on: :collection + end + end + + # Academic calendars + scope module: :calendar do + resources :academic_calendars + resources :academic_terms, except: :show + resources :calendar_titles, except: :show + resources :calendar_types + end + + resources :units + + scope module: :curriculum do + resources :courses + end + + scope module: :locations do + resources :countries do + resources :cities, except: [:index] do + resources :districts, except: [:show, :index] do + end + end + end + end + + resources :users do + scope module: :account do + resources :employees, except: :index do + resources :duties, except: :index do + resources :positions, except: %i[index show] + end + end + end + end + + scope module: :account do + get '/profile', to: 'profile#edit' + post '/profile', to: 'profile#update' + end + + # public profiles + get '/profiles/:id', to: 'public_profile#show' + get '/profiles/:id/vcard', to: 'public_profile#vcard', as: :profile_vcard + + scope module: :references do + resources :student_disability_types, except: :show + resources :student_drop_out_types, except: :show + resources :student_education_levels, except: :show + resources :student_entrance_point_types, except: :show + resources :student_entrance_types, except: :show + resources :student_grades, except: :show + resources :student_grading_systems, except: :show + resources :student_punishment_types, except: :show + resources :student_studentship_statuses, except: :show + resources :unit_instruction_languages, except: :show + resources :unit_instruction_types, except: :show + resources :unit_statuses, except: :show + resources :unit_types, except: :show + resources :university_types, except: :show + end + + scope module: :studies do + get '/studies', to: 'dashboard#index' + get '/studies/articles', to: 'articles#index' + get '/studies/projects', to: 'projects#index' + get '/studies/certifications', to: 'certifications#index' + end +end From adced9cd7940aa9713dd10e98e98920ef51f13ac Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 14:52:50 +0300 Subject: [PATCH 24/27] Fix wrong CI save_cache and restore_cache keys Cache keys without a checksum of gemfile.lock or yarn.lock cause a very broad type of caching, which may be misleading. CircleCI is offering x4 parallelism for free, but we hit quickly to the container time limit with x4 parallelism. Decrease parallism from four to one. --- .circleci/config.yml | 2 +- .circleci/parallel_workflow.yml | 2 +- .circleci/sequential_basic_workflow.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3501bd939..763ba70d8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -143,4 +143,4 @@ workflows: - karma filters: branches: - only: master + only: master \ No newline at end of file diff --git a/.circleci/parallel_workflow.yml b/.circleci/parallel_workflow.yml index 7fef080d8..34b6f9e40 100644 --- a/.circleci/parallel_workflow.yml +++ b/.circleci/parallel_workflow.yml @@ -149,4 +149,4 @@ workflows: - build_2_5_1 filters: branches: - only: master + only: master \ No newline at end of file diff --git a/.circleci/sequential_basic_workflow.yml b/.circleci/sequential_basic_workflow.yml index 71d412ac8..e262f258d 100644 --- a/.circleci/sequential_basic_workflow.yml +++ b/.circleci/sequential_basic_workflow.yml @@ -73,4 +73,4 @@ workflows: - build filters: branches: - only: master + only: master \ No newline at end of file From 8211c83750088d88677eca0e2202f0d0628f6041 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 15:14:52 +0300 Subject: [PATCH 25/27] Fix typos in guides --- README.md | 8 ++++---- docs/CONTRIBUTING.md | 28 ++++++++++++++-------------- docs/development/installation.md | 1 - docs/git/branch.md | 2 +- docs/git/code-review.md | 0 docs/git/commit.md | 6 +++--- docs/git/issue.md | 6 +++--- docs/git/review.md | 4 ++-- 8 files changed, 27 insertions(+), 28 deletions(-) delete mode 100644 docs/git/code-review.md diff --git a/README.md b/README.md index d89634e8f..60c391f5e 100644 --- a/README.md +++ b/README.md @@ -8,15 +8,15 @@ Dealing with ill-structured processes of a university is hard, especially when t ## Installation -See [installation guide](https://github.com/omu/nokul/development/installation.md) for details. +See [installation guide](/development/installation.md) for details. ## Contributing -See [contributing guide](https://github.com/omu/nokul/CONTRIBUTING.md) for details. +See [contributing guide](/CONTRIBUTING.md) for details. ## HowTo -See [/docs](https://github.com/omu/nokul/docs) for other documents. +See [/docs](/docs) for other documents. ## License @@ -24,4 +24,4 @@ See [LICENSE](LICENSE.md) for details. ## Authors -Thanks to [contributors](https://github.com/omu/nokul/graphs/contributors). \ No newline at end of file +Thanks to [contributors](/graphs/contributors). \ No newline at end of file diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index a251c9963..55a10e4ef 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -6,17 +6,17 @@ Bu rehber bu projeye (bundan sonra [nokul](https://github.com/omu/nokul) olarak Nokul'a katkı yaparak Ondokuz Mayıs Üniversitesi [bilişim politikalarını](https://github.com/omu/resmi/tree/master/bilgi-g%C3%BCvenli%C4%9Fi-politikas%C4%B1) ve gelecekte eklenmesi muhtemel yeni politikaları peşinen kabul ettiğinizi beyan etmiş sayılırsınız. -Nokul uygulamanın tüm hakları Ondokuz Mayıs Üniversitesi'ne aittir. Uygulamaya yapacağınız katkıların hakları da Ondokuz Mayıs Üniversitesi'ne ait olacaktır. Nokul projesinde çalışma sorumluluğu bulunmayan kişilerin yaptıkları katkılar tamamen gönüllü katkı olarak değerlendirilecek olup, bu kişilerin yaptıkları katkılar için telif hakkı, ücret, projenin herhangi bir yerinde isminin anılması (mention) gibi herhangi bir istekte bulunma hakları bulunmamaktadır. `Katkı sağlayan` olarak kullanıcı adınız, isminiz, sağladığınız katkı ve katkı sağladığınız tarih gibi bilgiler bu projede herkese açık bir biçimde görüntülenebilir. Nokul'a yapacağınız katkılar Ondokuz Mayıs Üniversitesi'ne ait olacağı için gelecekte yaptığınız katkıların projeden kaldırılmasını talep etme hakkınız bulunmamaktadır. +Nokul uygulamasının tüm hakları Ondokuz Mayıs Üniversitesine aittir. Uygulamaya yapacağınız katkıların hakları da Ondokuz Mayıs Üniversitesine ait olacaktır. Nokul projesinde çalışma sorumluluğu bulunmayan kişilerin yaptıkları katkılar tamamen gönüllü katkı olarak değerlendirilecek olup, bu kişilerin yaptıkları katkılar için telif hakkı, ücret, projenin herhangi bir yerinde isminin anılması (mention) gibi herhangi bir istekte bulunma hakları bulunmamaktadır. `Katkı sağlayan` olarak kullanıcı adınız, isminiz, sağladığınız katkı ve katkı sağladığınız tarih gibi bilgiler bu projede herkese açık bir biçimde görüntülenebilir. Nokul'a yapacağınız katkılar Ondokuz Mayıs Üniversitesine ait olacağı için gelecekte yaptığınız katkıların projeden kaldırılmasını talep etme hakkınız bulunmamaktadır. -Nokul projesi gelecekte herkese açık (public) bir proje olmayı garanti etmemektedir. Projenin görünürlüğü Ondokuz Mayıs Üniversitesi tarafından gerekli görüldüğü taktirde gizli (private) duruma çekilebilir. Bu durumda sağladığınız katkının kullanılmaya devam edeceğini peşinen kabul etmiş sayılırsınız. Projenin güncel lisansı [LICENCE.md](https://github.com/omu/nokul/blob/develop/LICENSE.md) dosyasında açıkça sunulmuştur. +Nokul projesi gelecekte herkese açık (public) bir proje olmayı garanti etmemektedir. Projenin görünürlüğü Ondokuz Mayıs Üniversitesi tarafından gerekli görüldüğü taktirde gizli (private) duruma çekilebilir. Bu durumda sağladığınız katkının kullanılmaya devam edeceğini peşinen kabul etmiş sayılırsınız. Projenin güncel lisansı [LICENSE.md](https://github.com/omu/nokul/blob/master/LICENSE.md) dosyasında açıkça sunulmuştur. ## Güvenlik Açığı Bildirimi -Bu projede herhangi bir güvenlik açığı tespit ederseniz lütfen `baum@omu.edu.tr` adresinden bildirim yapınız. Güvenlik açığı bildirimleri için herkese açık olan `issues` sayfasını kullanmayınız. +Bu projede herhangi bir güvenlik açığı tespit ederseniz lütfen `security@baum.omu.edu.tr` adresinden bildirim yapınız. Güvenlik açığı bildirimleri için herkese açık olan `issues` sayfasını kullanmayınız. ## Neye katkı yapabilirim? -İsteyen herkes, projede görebildiği herşeye katkı yapabilir. Projenin kaynak koduna, tasarımına, dökümanlarına, açık iş kayıtlarına, açık katkı taleplerine (pull request) ve diğer kısımlarına katkı yapabilirsiniz. +İsteyen herkes, projede görebildiği her şeye katkı yapabilir. Projenin kaynak koduna, tasarımına, dokümanlarına, açık iş kayıtlarına, açık katkı taleplerine (pull request) ve diğer kısımlarına katkı yapabilirsiniz. ----------------------------------- @@ -27,12 +27,12 @@ Bu projede herhangi bir güvenlik açığı tespit ederseniz lütfen `baum@omu.e - Projeye katkı sağlamadan önce, katkı sağlamak istediğiniz konuyla ilişkili bir iş kaydı açın. İş kaydı bulunmayan ve bir iş kaydına atıfta bulunmayan pull request'ler değerlendirmeye alınmayabilir veya geç değerlendirmeye alınabilir. -- [Issue](https://github.com/omu/nokul/docs/git/issue.md) kurallarını dikkatlice gözden geçirin. +- [Issue](/docs/git/issue.md) kurallarını dikkatlice gözden geçirin. ### Geliştirme Öncesi --------------------- -Bu projenin bazı kısımları gönüllülerden gelecek katkılara açık olmakla birlikte, projenin bazı kısımları bir takım kısıtlı servisler ile haberleşmekte ve çeşitli erişim bilgilerine ihtiyaç duymaktadır. +Bu projenin bazı kısımları gönüllülerden gelecek katkılara açık olmakla birlikte, projenin bazı kısımları birtakım kısıtlı servisler ile haberleşmekte ve çeşitli erişim bilgilerine ihtiyaç duymaktadır. - Sırlar @@ -51,39 +51,39 @@ Harici servisler yalnızca BAUM-VPN'e açıktır. Geliştirme yaparken ihtiyaç - Projeye yazma yetkiniz varsa projeyi klonlayın, yazma yetkiniz yoksa projeyi `fork` edin. -- [Branch](https://github.com/omu/nokul/docs/git/branch.md) kurallarını dikkatlice gözden geçirin. +- [Branch](/docs/git/branch.md) kurallarını dikkatlice gözden geçirin. - Proje klonunda veya kendi `fork`'unuzda, branch kurallarını dikkate alan bir branch oluşturun: `git checkout -b my-awesome-feature` -- [Kurulum dokümanını](https://github.com/omu/nokul/docs/development/installation.md) takip ederek projenin kurulumunu yapın. +- [Kurulum dokümanını](/docs/development/installation.md) takip ederek projenin kurulumunu yapın. - Arka plan görevleri için `sidekiq`'i çalıştırın (`bundle exec sidekiq -q high -q low`). -- [Stil](https://github.com/omu/nokul/docs/style/) kurallarını dikkatlice gözden geçirin. +- [Stil](/docs/style/) kurallarını dikkatlice gözden geçirin. - Kod üzerinde değişiklikleri yapın. -- [Commit](https://github.com/omu/nokul/docs/git/commit.md) kurallarını dikkatlice gözden geçirin. +- [Commit](/docs/git/commit.md) kurallarını dikkatlice gözden geçirin. - Değişiklerinizi commit'leyin. -- [Test Coverage](https://github.com/omu/nokul/docs/development/test-coverage.md) kurallarını dikkatlice gözden geçirin. +- [Test Coverage](/docs/development/test-coverage.md) kurallarını dikkatlice gözden geçirin. - Yaptığınız değişikliğin test coverage oranını düşürmediğinden emin olun. - Değişikliklerinizi push etmeden önce çeşitli kontrolleri gerçekleştiren `pr` rake task'ini çalıştırın (`rake pr`): -- `pr` task'inden hata aldıysanız öncelikle bunları çözün ve commitleyin. +- `pr` task'inden hata aldıysanız öncelikle bunları çözün ve commit'leyin. - `pr` task'i başarıyla çalışıyorsa commit'lerinizi kendi branch'inize push edin. ### Geliştirme Sonrası ---------------------- -- [Pull Request](https://github.com/omu/nokul/docs/git/pull-request.md) kurallarını dikkatlice gözden geçirin. +- [Pull Request](/docs/git/pull-request.md) kurallarını dikkatlice gözden geçirin. - Geliştirmenizi tamamladıktan sonra kendi branch'inizden `develop`'a doğru bir `pull request` (diğer adıyla `merge request`) açın. -- [Review](https://github.com/omu/nokul/docs/git/review.md) kurallarını dikkatlice gözden geçirin. +- [Review](/docs/git/review.md) kurallarını dikkatlice gözden geçirin. - Pull request'inizin review sürecinin tamamlanmasını bekleyin. diff --git a/docs/development/installation.md b/docs/development/installation.md index c0384c18d..5b5248acd 100644 --- a/docs/development/installation.md +++ b/docs/development/installation.md @@ -6,7 +6,6 @@ - [Redis](https://packages.debian.org/search?keywords=redis) - [libvips](https://github.com/jcupitt/libvips/wiki/Build-for-Ubuntu) - ## Installation - Database configuration file reads username, password and host settings from environment variables. Make sure to define these environment variables before setting up the project. Add environment variables to your .bashrc, .zshrc, .bash_profile etc.: diff --git a/docs/git/branch.md b/docs/git/branch.md index a30751cdd..ad038fcb3 100644 --- a/docs/git/branch.md +++ b/docs/git/branch.md @@ -4,7 +4,7 @@ ---------------- - Projenin yayında bulunan sürümü `master` branch'inde bulunmaktadır. -- Projenin aktif geliştirme alan kararlı sürümü `develop` branch'inde bulunmaktadır. +- Projenin aktif geliştirme yapılan kararlı sürümü `develop` branch'inde bulunmaktadır. - `develop` branch'i sürüm yöneticisi (release manager) tarafından uygun görülen zamanlarda `master`'a merge edilerek yayına alınır. Dolayısıyla `develop` branch'i her zaman `master`'dan daha güncel ve önde gitmektedir. - Geliştiriciler sağlayacakları her türlü katkı için (ufak bir imla düzeltmesi dahil) kendi branch'lerini oluşturmalıdır. - `master` ve `develop` branch'leri protected branch'ler olup geliştiriciler bu branch'lere doğrudan commit push edemezler. diff --git a/docs/git/code-review.md b/docs/git/code-review.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/git/commit.md b/docs/git/commit.md index 26267c9e7..7c5e3cad9 100644 --- a/docs/git/commit.md +++ b/docs/git/commit.md @@ -4,7 +4,7 @@ - Her bir commit'in kendi içerisinde anlamsal bir bütünlüğe sahip olması için özen gösterin. Yaptığınız tüm değişiklikleri tek bir commit mesajı ile commitlemeyin. -- Her bir commit yalnızca tek anlamsal değişikliği ifade etmeli. Örneğin hem bir bug'ı düzelttiniz, hem de renki hatalı olan bir butonun rengini düzelttiyseniz bunları ayrı ayrı commitleyin. +- Her bir commit yalnızca tek anlamsal değişikliği ifade etmeli. Örneğin hem bir bug'ı düzelttiniz, hem de rengi hatalı olan bir butonun rengini düzelttiyseniz bunları ayrı ayrı commitleyin. - Erken ve sık aralıklarla commit edin. Küçük ve bağımsız commitlerin anlaşılması ve eski haline döndürülmesi bir şeylerin yanlış gitmesi durumunda daha kolaydır. @@ -17,7 +17,7 @@ DOĞRU: git commit Güzel bir commit mesajının 7 altın kuralını takip edin: -1. Commit başlığı ve gözdesini boş bir satırla ayırın +1. Commit başlığı ve gövdesini boş bir satırla ayırın 1. Commit başlığını 72 karakterle sınırlayın 1. Başlığın ilk harfini büyük harf yapın 1. Başlık cümlesini nokta işareti ile bitirmeyin @@ -37,7 +37,7 @@ YANLIŞ: add authorization roles as admin and user DOĞRU: Add authorization roles as admin and user ``` -- Commit başlığını en fazla 72 karakterden, tercihen ise 50 karakterden oluşacak şekilde düzenleyin. +- Commit başlığını en fazla 72 karakter, tercihen 50 karakterden oluşacak şekilde düzenleyin. ``` YANLIŞ: Add authorization roles as admin and user, so that people can get roles in other controllers and admins can assign roles to other users. diff --git a/docs/git/issue.md b/docs/git/issue.md index 22f527bbc..6a9cf219e 100644 --- a/docs/git/issue.md +++ b/docs/git/issue.md @@ -11,7 +11,7 @@ Sağlayacağınız katkıyla alakalı olarak bir iş kaydı açarak: sağlamış olacaksınız. -Açtığınız iş kaydı üzerinde karara bağlanan iş, size atandıktan sonra ilgili geliştirmeye yapmaya başlayabilirsiniz. Pull request açmadan önce iş kaydı açarak: +Açtığınız iş kaydı üzerinde karara bağlanan iş size atandıktan sonra geliştirme yapmaya başlayabilirsiniz. Pull request açmadan önce iş kaydı açarak: - PR'e review yapanları bu PR'in ne iş yaptığı ve buna neden gerek olduğu, - PR'in kabul edilmesi durumunda CHANGELOG'a ne yazılacağını ve sürüm notlarında nelerden bahsedileceği @@ -45,7 +45,7 @@ YANLIŞ: Ders: Ders ekleme sırasında okutulma türünün seçilmesini sağla DOĞRU: Ders ekleme sırasında dersin okutulma türü seçilebilmeli ``` -Hatalı örnekte `prefix` yoluyla kategorizasyona gidilmiş. Eğer bir seri halinde iş kayıtları mevcutsa bunlar bir `milestone` altında gruplanmalı. Ayrıca _seçilmesini sağla_ kelimeleri bir probleme/öneriye işaret etmiyor. _seçilebilmeli_ kelimesi şuan bu özelliğin mevcut olmadığına işaret etmekte. Hatalı örneğin başlığı bir PR için uygun, issue için değil. +Hatalı örnekte `prefix` yoluyla kategorizasyona gidilmiş. Eğer bir seri halinde iş kayıtları mevcutsa bunlar bir `milestone` altında gruplanmalı. Ayrıca _seçilmesini sağla_ kelimeleri bir probleme/öneriye işaret etmiyor. _seçilebilmeli_ kelimesi şu an bu özelliğin mevcut olmadığına işaret etmekte. Hatalı örneğin başlığı bir PR için uygun, issue için değil. ``` YANLIŞ: Ülke, şehir ve ilçe seçimlerinde dynamic select'e ihtiyaç var @@ -72,7 +72,7 @@ YANLIŞ: katkı sağlama rehberi hazırla DOĞRU: Katkı sağlama rehberi hazırla ``` -İstisna olarak farklı stide yazılması gereken model isimleri (UserDuty), kısaltmalar (YÖK, MEB vb.) hala büyük harfle yazılmalıdır. +İstisna olarak farklı stilde yazılması gereken model isimleri (UserDuty), kısaltmalar (YÖK, MEB vb.) yine büyük harfle yazılmalıdır. ## Issue Gövdesi ---------------- diff --git a/docs/git/review.md b/docs/git/review.md index 24546bd17..57d3b78a1 100644 --- a/docs/git/review.md +++ b/docs/git/review.md @@ -2,8 +2,8 @@ - Açtığınız pull request'in merge edilebilmesi için en az 2 kişi tarafından review edilmesi ve onaylanması gerekir. -- Açtığınız pull request'lere varsayılan olarak [bazı geliştiriciler](https://github.com/omu/nokul/.github/CODEOWNERS) otomatik olarak atanacaktır. +- Açtığınız pull request'lere varsayılan olarak [bazı geliştiriciler](/.github/CODEOWNERS) otomatik olarak atanacaktır. - Geliştiricilerin yoğunluğuna ve açtığınız pull request'in büyüklüğüne bağlı olarak review süreci bir kaç gün alabilir. -- Sizden bir pull request'e review yapmanız istendiğinde bunu en geç 2 gün içerisinde tamamlayın. Siz başkalarını bekletirseniz, başkaları da sizi bekletir, unutmayın. \ No newline at end of file +- Sizden bir pull request'e review yapmanız istendiğinde bunu en geç 2 gün içerisinde tamamlayın. Review'de yaşanacak gecikmeler katkı sağlayan kişinin (gelecekte bu kişi siz de olabilirsiniz) motivasyonunu kırabilir. \ No newline at end of file From 2062150495fe52134e32f6046301c5f9b6d006a2 Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 15:23:12 +0300 Subject: [PATCH 26/27] Fix broken links in readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 60c391f5e..f99dc8ce2 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ Dealing with ill-structured processes of a university is hard, especially when t ## Installation -See [installation guide](/development/installation.md) for details. +See [installation guide](/docs/development/installation.md) for details. ## Contributing -See [contributing guide](/CONTRIBUTING.md) for details. +See [contributing guide](/docs/CONTRIBUTING.md) for details. ## HowTo @@ -24,4 +24,4 @@ See [LICENSE](LICENSE.md) for details. ## Authors -Thanks to [contributors](/graphs/contributors). \ No newline at end of file +Thanks to [contributors](https://github.com/omu/nokul/graphs/contributors). \ No newline at end of file From 45d2afad17e1847a3b7096315933f6d3c8a9251f Mon Sep 17 00:00:00 2001 From: msdundar Date: Thu, 16 Aug 2018 15:51:40 +0300 Subject: [PATCH 27/27] Comment out description lines in git templates --- .github/ISSUE_TEMPLATE/bug-report.md | 61 +++++++++++++--------- .github/ISSUE_TEMPLATE/design-proposal.md | 33 +++++++----- .github/ISSUE_TEMPLATE/feature-proposal.md | 28 ++++++---- .github/PULL_REQUEST_TEMPLATE.md | 32 +++++++----- Gemfile.lock | 3 ++ 5 files changed, 94 insertions(+), 63 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index 59cb26969..b4671a045 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -4,43 +4,52 @@ about: Tespit ettiğiniz hataları, beklenen dışında çalışan özelliklerin --- -**Hatayı ve/veya bug'ı açıklayın** -Kısa ve net bir şekilde hatanın ne olduğu açıklanmalıdır. +**Hatayı ve/veya bug'ı açıklayın:** -**Tekrarlama adımları** -Hatayı tekrarlama için takip edilmesi gereken adımlar: -1. X adresinde bulunan Y sayfasına git. -2. Z butonuna tıkla. -3. Sayfayı en alta kaydır. -4. Görünmesi gereken metin K iken L görünüyor. +[//]: # (Kısa ve net bir şekilde hatanın ne olduğu açıklanmalıdır.) -**Olması gereken davranış** -Kısa ve net bir şekilde hata yerine olması gereken uygulama davranışının ne olması gerektiğini açıklayınız. Örn: X kaydı silindiğinde Z sayfasına yönlendirme yapılmalı. +**Hatayı tekrarlama için takip edilmesi gereken adımlar:** -**Ekran görüntüleri** -Varsa, hatayı görmeyi kolaylaştırılacak ekran görüntüleri. +[//]: # (1. X adresinde bulunan Y sayfasına git.) +[//]: # (2. Z butonuna tıkla.) +[//]: # (3. Sayfayı en alta kaydır.) +[//]: # (4. Görünmesi gereken metin K iken L görünüyor.) + +**Olması gereken davranış:** + +[//]: # (Kısa ve net bir şekilde hata yerine olması gereken uygulama davranışının ne olması gerektiğini açıklayınız. Örn: X kaydı silindiğinde Z sayfasına yönlendirme yapılmalı.) + +**Ekran görüntüleri:** + +[//]: # (Varsa, hatayı görmeyi kolaylaştırılacak ekran görüntüleri.) **Hatanın alındığı ortam:** -Belirtmediğiniz taktirde Ubuntu 18.04/Debian 9 üzerinde güncel Google Chrome kullandığınız varsayılacaktır. - - OS: [e.g. iOS, Windows 10] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] + +[//]: # (Belirtmediğiniz taktirde Ubuntu 18.04/Debian 9 üzerinde güncel Google Chrome kullandığınız varsayılacaktır.) + +[//]: # (- OS: [e.g. iOS, Windows 10]) +[//]: # (- Browser [e.g. chrome, safari]) +[//]: # (- Version [e.g. 22]) **Hata mobil ortamda alınıyorsa:** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] -**Katkı sağlama** -Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin. +[//]: # (- Device: [e.g. iPhone6]) +[//]: # (- OS: [e.g. iOS8.1]) +[//]: # (- Browser [e.g. stock browser, safari]) +[//]: # (- Version [e.g. 22]) + +**Katkı sağlama:** + +[//]: # (Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin.) + * [ ] Evet, bu iş kaydının bana atanmasını istiyorum. -**Kontrol listesi** +**Kontrol listesi:** * [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? * [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? -* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? +* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) emin misiniz? + +**Ek içerik:** -**Ek içerik** -Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. +[//]: # (Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz.) diff --git a/.github/ISSUE_TEMPLATE/design-proposal.md b/.github/ISSUE_TEMPLATE/design-proposal.md index 0c3a7adee..bf556daa6 100644 --- a/.github/ISSUE_TEMPLATE/design-proposal.md +++ b/.github/ISSUE_TEMPLATE/design-proposal.md @@ -4,27 +4,34 @@ about: Uygulamanın varolan UI/UX'i ile ilgili değişiklik önerisi. Varolan sa --- -**Bu tasarım önerisi bir problemle mi ilgili? Lütfen detaylıca açıklayınız.** -Tasarım önerinizi detaylıca açıklayınız. Mevcut tasarımdaki sorun ne, bu tasarıma neden ihtiyaç var, tasarım neleri iyileştirecek gibi sorunların tanımı açıkça yapılmalıdır. +**Bu tasarım önerisi bir problemle mi ilgili? Lütfen detaylıca açıklayınız:** -**Sizin çözümünüz** -Kısa ve net bir şekilde konuyla ilişkili olarak sizin önerileriniz neler, sizin öneriniz kabul edilirse neler olacak, uygulama da neler iyileşecek açıklayınız. +[//]: # (Tasarım önerinizi detaylıca açıklayınız. Mevcut tasarımdaki sorun ne, bu tasarıma neden ihtiyaç var, tasarım neleri iyileştirecek gibi sorunların tanımı açıkça yapılmalıdır.) + +**Sizin çözümünüz:** + +[//]: # (Kısa ve net bir şekilde konuyla ilişkili olarak sizin önerileriniz neler, sizin öneriniz kabul edilirse neler olacak, uygulama da neler iyileşecek açıklayınız.) **Diğer alternatifler** -Konuyla veya sunduğunuz çözümle ilgili düşündüğünüz diğer alternatifler neler? Konuya dahil olarak kişiler neleri göz önünde bulundurmalı? -**Katkı sağlama** -Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin. +[//]: # (Konuyla veya sunduğunuz çözümle ilgili düşündüğünüz diğer alternatifler neler? Konuya dahil olarak kişiler neleri göz önünde bulundurmalı?) + +**Katkı sağlama:** + +[//]: # (Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin.) + * [ ] Evet, bu iş kaydının bana atanmasını istiyorum. -**Ekran görüntüleri** -Mevcut tasarım ve sizin önerinizi karşılaştırabileceğimiz ekran görüntüleri. +**Ekran görüntüleri:** + +[//]: # (Mevcut tasarım ve sizin önerinizi karşılaştırabileceğimiz ekran görüntüleri.) -**Kontrol listesi** +**Kontrol listesi:** * [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? * [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? -* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? +* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) olmadığından emin misiniz? + +**Ek içerik:** -**Ek içerik** -Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. +[//]: # (Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz.) diff --git a/.github/ISSUE_TEMPLATE/feature-proposal.md b/.github/ISSUE_TEMPLATE/feature-proposal.md index c13228847..52b9c27ee 100644 --- a/.github/ISSUE_TEMPLATE/feature-proposal.md +++ b/.github/ISSUE_TEMPLATE/feature-proposal.md @@ -4,24 +4,30 @@ about: Bu projeye eklenmesini istediğiniz veya değiştirilmesini istediğiniz --- -**Bu özellik bir problemle mi ilgili? Lütfen detaylıca açıklayınız.** -Özelliği detaylıca açıklayınız. Eklenmesi/değiştirilmesi iyi olacak olan özelliğin netleştirilmesi, varsa yaşanan sorunların tanımı açıkça yapılmalıdır. +**Bu özellik bir problemle mi ilgili? Lütfen detaylıca açıklayınız:** -**Sizin çözümünüz** -Kısa ve net bir şekilde konuyla ilişkili olarak sizin önerileriniz neler, sizin öneriniz kabul edilirse neler olacak, uygulama da neler iyileşecek açıklayınız. +[//]: # (Özelliği detaylıca açıklayınız. Eklenmesi/değiştirilmesi iyi olacak olan özelliğin netleştirilmesi, varsa yaşanan sorunların tanımı açıkça yapılmalıdır.) -**Diğer alternatifler** -Konuyla veya sunduğunuz çözümle ilgili düşündüğünüz diğer alternatifler neler? Konuya dahil olarak kişiler neleri göz önünde bulundurmalı? +**Sizin çözümünüz:** + +[//]: # (Kısa ve net bir şekilde konuyla ilişkili olarak sizin önerileriniz neler, sizin öneriniz kabul edilirse neler olacak, uygulama da neler iyileşecek açıklayınız.) + +**Diğer alternatifler:** + +[//]: # (Konuyla veya sunduğunuz çözümle ilgili düşündüğünüz diğer alternatifler neler? Konuya dahil olarak kişiler neleri göz önünde bulundurmalı?) + +**Katkı sağlama:** + +[//]: # (Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin.) -**Katkı sağlama** -Bu iş kaydının size atanmasını istiyor musunuz* Yardımına/bilgisine ihtiyaç duyduğunuz diğer ekip üyeleri varsa burada nasıl bir yardıma ihtiyaç duyduğunuzu belirtin. * [ ] Evet, bu iş kaydının bana atanmasını istiyorum. **Kontrol listesi** * [ ] İş kaydınızın başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? * [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? -* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) var mı? +* [ ] Öneriniz ile alakalı açık olarak bekleyen bir [issue](https://github.com/omu/nokul/issues) veya [pull request](https://github.com/omu/nokul/pulls) olmadığından emin misiniz? + +**Ek içerik:** -**Ek içerik** -Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. +[//]: # (Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz.) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a0888959e..dccbe7c4e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,19 +1,24 @@ -**Bu PR'in yaptığı işi/değişikliği ve bu işi/değişikliği neden yaptığını açıklayın** -Kısa ve net bir şekilde bu PR'e neden ihtiyaç var, ne iş/değişiklik yapıyor açıklanmalıdır. +**Bu PR'in yaptığı işi/değişikliği ve bu işi/değişikliği neden yaptığını açıklayın:** -**İlgili iş kayıtları** -Bu PR ile ilişkili iş kayıtlarının ID numaraları (örn. #123456, #123457, #123458) listeleyin. +[//]: # (Kısa ve net bir şekilde bu PR'e neden ihtiyaç var, ne iş/değişiklik yapıyor açıklanmalıdır.) -**Kapatılacak iş kayıtları** -Bu PR merge edildiğinde hangi iş kayıtları kapatılacak, `Closes`, `Fixes` gibi anahtar kelimeler ile birlikte ID numaralarını listeleyin. +**İlgili iş kayıtları:** -**Veritabanı** -Bu PR merge edildiğinde veritabanı üzerinde herhangi bir değişiklik (migration, seed, add/drop vb.) yapılması gerekecek mi açıklayın. +[//]: # (Bu PR ile ilişkili iş kayıtlarının ID numaraları, örn. #123456, #123457, #123458, listeleyin.) -**Sistem/Ops** -Bu PR merge edildiğinde sunucular üzerinde bir değişiklik (paket kurulması, buildpack eklenmesi vb.) yapılması gerekecekmi, açıklayın. +**Kapatılacak iş kayıtları:** -**Kontrol listesi** +[//]: # (Bu PR merge edildiğinde hangi iş kayıtları kapatılacak, `Closes`, `Fixes` gibi anahtar kelimeler ile birlikte ID numaralarını listeleyin.) + +**Veritabanına etkileri:** + +[//]: # (Bu PR merge edildiğinde veritabanı üzerinde herhangi bir değişiklik -migration, seed, add/drop vb.- yapılması gerekecek mi açıklayın.) + +**Sistem/Ops etkileri:** + +[//]: # (Bu PR merge edildiğinde sunucular üzerinde bir değişiklik - paket kurulması, buildpack eklenmesi vb. - yapılması gerekecekmi, açıklayın.) + +**Kontrol listesi:** * [ ] Açtığınız PR'in başlığı kurallara (sadece ilk harf büyük, emir kipinde problem cümlesi vb.) uygun mu? * [ ] [Katkı sağlama dokümanını](https://github.com/omu/nokul/CONTRIBUTING.md) okudunuz mu? @@ -25,5 +30,6 @@ Bu PR merge edildiğinde sunucular üzerinde bir değişiklik (paket kurulması, * [ ] Yaptığınız iş/değişiklik ile ilgili **tüm** proje üyelerinden review talep ettiniz mi? * [ ] Gerekli etiketleri (bug, feature-step, help-wanted vb.) girdiniz mi? -**Ek içerik** -Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz. +**Ek içerik:** + +[//]: # (Kaynaklar, dış bağlantılar, ekran görüntüleri, örnek çözümler ve benzeri diğer kaynakları ekleyiniz.) diff --git a/Gemfile.lock b/Gemfile.lock index ca6361c46..08b7d0b0b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -421,5 +421,8 @@ DEPENDENCIES uglifier (>= 1.3.0) web-console (>= 3.3.0) +RUBY VERSION + ruby 2.5.1p57 + BUNDLED WITH 1.16.3