From 8fae061b5c9207bca3ffd861317f8a11311f8b64 Mon Sep 17 00:00:00 2001 From: Alexey Korolev Date: Wed, 8 May 2024 09:22:29 +0300 Subject: [PATCH 1/5] Perform project cleanup --- CHANGELOG.md | 164 +++++++++++++++++- {{ cookiecutter.name }}/.ruby-version | 2 +- {{ cookiecutter.name }}/Brewfile | 1 - {{ cookiecutter.name }}/Mintfile | 1 - {{ cookiecutter.name }}/README.md | 6 +- {{ cookiecutter.name }}/swiftgen.yml | 9 - .../Classes/Generated/Plist.swift | 0 .../Classes/Generated/StoryboardScenes.swift | 0 .../Classes/Generated/StoryboardSegues.swift | 0 .../Classes/Generated/Strings.swift | 0 .../Resources/Storyboards/.gitkeep | 0 11 files changed, 162 insertions(+), 21 deletions(-) delete mode 100644 {{ cookiecutter.name }}/Brewfile delete mode 100644 {{ cookiecutter.name }}/Mintfile delete mode 100644 {{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/Plist.swift delete mode 100644 {{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/StoryboardScenes.swift delete mode 100644 {{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/StoryboardSegues.swift delete mode 100644 {{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/Strings.swift delete mode 100644 {{ cookiecutter.name }}/{{ cookiecutter.name }}/Resources/Storyboards/.gitkeep diff --git a/CHANGELOG.md b/CHANGELOG.md index 638454a..50b7f58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,144 +1,224 @@ # Changelog +## [2.2.0] - 2024-05-08 + +### Changed + +- Обновлен ruby до 3.0.7 + +### Removed + +- Удален Brewfile +- Удален Mintfile +- Удалена папка Storyboards и SwiftGen генерируемые файлы + ## [2.1.0] - 2024-04-01 + ### Changed + - Изменил template на создание SwiftUI приложения ## [2.0.1] - 2024-03-28 + ### Changed + - Обновил SwiftGen до версии 6.6.3 + ### Fixed + - Добавил тестовый таргет в Podfile - Изменил название тестового модуля на {{ name }}Tests ## [2.0.0] - 2024-02-13 + ### Changed + - Перешел на Cocoapods PM + ### Removed + - Удален fastlane badge plugin ## [1.9.0] - 2023-12-22 + ### Added + - Добавлен .ruby-version файл ## [1.8.0] - 2023-10-06 + ### Changed + - Осуществлена миграция на новый формат файлов строк локализаций в Xcode 15 ## [1.7.0] - 2023-09-25 + ### Changed + - Обновлена версия swift в .swiftformat файле до 5.9 - Удалена генерация Assets.swift с использованием SwiftGen, теперь используется нативная генерация кода из Xcode 15 ## [1.6.0] - 2023-08-16 + ### Changed + - Обновил структуру папок в Classes ## [1.5.0] - 2023-08-15 + ### Changed + - Обновил Xcodegen до 2.36.0 и swiftformat до 0.52.0 ## [1.4.1] - 2023-06-30 + ### Removed + - Удалена генерация SwiftGen файла из Info.plist ## [1.4.0] - 2023-06-28 + ### Removed + - Удалены параметры в Info.plist файле, проект переключен на автоматическую генерацию Info.plist ## [1.3.2] - 2023-06-26 + ### Removed + - Удалил LogManager ## [1.3.1] - 2023-06-22 + ### Changed + - Изменил настройку codesign проекта на Automatic ## [1.3.0] - 2023-04-24 + ### Changed + - Добавлена поддержка xcfilelist для swiftgen билд скрипта ## [1.2.41] - 2023-04-20 + ### Changed + - Реорганизовал .PHONY таргеты в Makefile - Переименовал `make hook` -> `make hooks` ## [1.2.40] - 2023-04-20 + ### Changed + - Отключил basedOnDependencyAnalysis для SwiftGen скрипта - Удалил SwiftFormat билд скрипт ## [1.2.39] - 2023-04-19 + ### Changed + - Изменено поведение pre-commit хука на линтинг, вместо форматирования. - Добавлен post-checkout hook для генерации проектного файла при переключении веток. - Этап форматирования перенесен в unit таргет, так как это менее шумный и назойливый вариант и [рекомендован](https://github.com/nicklockwood/SwiftFormat#xcode-build-phase) создателем утилиты. ## [1.2.38] - 2023-04-18 + ### Changed + - Добавлена опция генерации для добавления .xcodeproj файла в .gitignore ## [1.2.37] - 2023-04-14 + ## Changed + - Обновил SwiftFormat до версии 0.51.6 + ## Removed + - Удалил SwiftLint, линтер в проекте заменён на SwiftFormat ## [1.2.36] - 2023-04-11 + ## Removed + - Удалил URLRequest+Debug.swift файл, вынес его содержимое в отдельную [библиотеку](https://github.com/alphatroya/curlifier) ## [1.2.35] - 2023-04-04 + ### Removed + - Удалил NetworkLogger helper класс ## [1.2.34] - 2023-03-31 + ### Changed + - Удалил BartyCrouch config файл ## [1.2.33] - 2023-03-21 + ### Removed + - Удален установщик homebrew из Makefile ## [1.2.32] - 2023-01-16 + ### Removed + - Удален bitrise.yml файл ## [1.2.31] - 2023-01-15 + ### Changed + - Удалил BartyCrouch helper файл ## [1.2.30] - 2022-10-10 + ### Changed + - Удалил зависимость с BartyCrouch из Makefile ## [1.2.29] - 2022-10-02 + ### Changed + - Обновил SwiftFormat утилиту до 0.50.0 - Обновил версию swift в `.swiftformat` до 5.7 ## [1.2.28] - 2022-09-20 + ### Changed + - Теперь используется одно изображение для иконки (Xcode 14+) - Удалил зависимость appicon и `make icon` target. ## [1.2.27] - 2022-09-16 + ### Changed + - Обновил swiftgen до версии 6.6.2 ## [1.2.26] - 2022-09-13 + ### Changed + - Обновил swiftformat 0.49.18 - Включил preferDouble правило для swiftformat ## [1.2.25] - 2022-09-12 + ### Changed + - Обновил SwiftLint 0.49.1 - Почищены правила для swiftlint'а. Линтер больше не создает предупреждения, которые будут исправлены форматтером. - Включил todo правило ## [1.2.24] - 2022-05-30 + ### Changed + - Обновил SwiftFormat до 0.49.9 - Обновил версию swift для SwiftFormat до 5.5 - Обновил SwiftLint 0.47.1 @@ -147,159 +227,227 @@ - SwiftFormat теперь удаляет заголовки у файлов ## [1.2.23] - 2021-09-11 + ### Changed + - Обновил SwiftLint до 0.44.0 версии - Обновил SwiftFormat до 0.48.11 версии ## [1.2.22] - 2021-08-23 + ### Changed + - Удалён BartyCrouch из проектных билд скриптов ## [1.2.21] - 2021-07-08 + ### Changed + - Удалён ProjectConfiguration.swift хэлпер, вместо него лучше использовать #if DEBUG проверки. ## [1.2.20] - 2021-03-29 + ### Changed + - Уменьшил количество информации, которая сохраняется в .xcode-version файле ## [1.2.19] - 2021-03-25 + ### Fixed + - Добавил генерацию пустого api-key.json файла при вызове fastlane, так как без него вызов `fastlane match` падал. ## [1.2.18] - 2021-03-15 + ### Changed + - Обновил имена SwiftGen темплейтов до swift5 версии - Установил переменную окружения FASTLANE_SKIP_UPDATE_CHECK в true. Теперь текст с обновлениями fastlane не будет показываться во время сборки ## [1.2.17] - 2021-03-10 + ### Changed + - Во время генерации проекта теперь создается `.xcode-version` файл с проектной версией XCode ## [1.2.16] - 2021-02-24 + ### Changed + - Путь к `api-key.json` файл вынесен в `APP_STORE_CONNECT_API_KEY_PATH` ENV переменную. Теперь нет необходимости указывать путь к ключам доступа при любом использовании `fastlane`. ## [1.2.15] - 2021-01-19 + ### Changed + - Обновил BartyCrouch до версии 4.4.1 - Удалил `.git` зависимость из `make clean` действия - Включены следующие правила в .swiftlint.yml: `xct_specific_matcher` `vertical_whitespace_closing_braces` `vertical_whitespace_opening_braces` `unowned_variable_capture` `unavailable_function` `redundant_type_annotation` `ibinspectable_in_extension` `multiline_function_chains` `multiline_parameters` `lower_acl_than_parent` `last_where` `discouraged_optional_collection` `anyobject_protocol` - Выключено `indentation_width` правило в .swiftlint ## [1.2.14] - 2021-01-15 + ### Changed + - Обновил SwiftLint до 0.42.0 версии ## [1.2.13] - 2021-01-14 + ### Changed + - Удалены параметры `apple_id` и `team_name` из Appfile, так как в них нет необходимости при использовании JWT токенов. - Добавлен параметр `feedback_email` для техподдержки. ## [1.2.12] - 2020-11-16 + ### Changed + - Обновил SwiftLint до 0.41.0 версии ## [1.2.11] - 2020-10-23 + ### Changed + - Добавил опцию для удаления `bitrise.yml` конфига во время генерации ## [1.2.10] - 2020-10-22 + ### Changed + - Добавил параметр api-key для fastlane register_devices команды. ## [1.2.9] - 2020-10-20 + ### Changed + - Обновил SwiftFormat до версии 0.47.0 и включил опциональное правило markTypes для него ## [1.2.8] - 2020-10-13 + ### Changed + - Обновил SwiftGen до версии 6.4.0 ## [1.2.7] - 2020-10-13 + ### Changed + - Исключил Generated папку из списка форматирования pre-commit хуков - Хуки теперь хранятся в папке hooks проекта ## [1.2.6] - 2020-10-12 + ### Added + - Добавил кэширование клонированных зависимостей SPM для Bitrise CI ## [1.2.5] - 2020-10-08 + ### Changed + - Изменил конфигурации bitrise и fastlane на использование [AppStore API](https://docs.fastlane.tools/app-store-connect-api/) ## [1.2.4] - 2020-10-05 + ### Changed + - Обновил AppIcon утилиту до 1.0.5 версии, так как предыдущая не собиралась на Swift 5.3 ## [1.2.3] - 2020-09-29 + ### Fixed + - Обновил BartyCrouch утилиту до версии 4.3.0, так как на предыдущей версии были проблемы с Swift 5.3 ## [1.2.2] - 2020-09-23 + ### Changed + - UIViewController lifecycle методы были добавлены в правило organizeDeclarations SwiftFormat ## [1.2.1] - 2020-09-21 + ### Fixed + - Перенес homebrew target на первое место в bootstrap make таргете чтобы он вызывался -первым при разворачивании проекта. + первым при разворачивании проекта. ## [1.2.0] - 2020-09-21 + ### Removed + - Удален Carthage, менеджер зависимостей заменен на Swift Package Manager. ## [1.1.28] - 2020-09-18 + ### Changed + - Swiftformat утилита обновлена до 0.46.2 - Версия swift в проекте повышена до 5.3 ## [1.1.27] - 2020-09-18 + ### Changed + - Удален Carting, теперь его функционал может выполнять XCodeGen. ## [1.1.26] - 2020-09-14 + ### Changed + - Изменен путь на папку Generated в swiftformat исключениях. ## [1.1.25] - 2020-08-31 + ### Changed + - Переименовал папку UIKit -> Views (теперь там могут быть общие вьюхи не только от UIKit). - Переместил родительский класс NavigationController в папку Parent ## [1.1.24] - 2020-08-31 + ### Changed + - Swiftformat утилита обновлена до 0.46.1 - Включена опция isEmpty для swiftformat для преобразования `.count == 0 => .isEmpty` - Включена опция `organizeDeclarations` для swiftformat для форматирования структуры файлов - Выключено правило `type_contents_order` для swiftlint с которым swiftformat конфликтовал ## [1.1.23] - 2020-08-26 + ### Added + - Сервис bitrise.io включил возможность хранения `bitrise.yml` файла в репозитории. Файл -перенесен в темплейт из внутренней wiki. + перенесен в темплейт из внутренней wiki. ## [1.1.22] - 2020-08-25 + ### Fixed + - Установил параметр `clone_branch_directly` в false для `create` lane, так как он может -упасть при первом вызове в новую ветку с ошибкой "You passed '' as branch in combination -with the `clone_branch_directly` flag. Please remove `clone_branch_directly` flag on the -first run for _match_ to create the branch." + упасть при первом вызове в новую ветку с ошибкой "You passed '' as branch in combination + with the `clone_branch_directly` flag. Please remove `clone_branch_directly` flag on the + first run for _match_ to create the branch." ## [1.1.21] - 2020-08-24 + ### Fixed + - Добавил проверку на установленный mint в build phase, так как сборка падала на системах -где он не был установлен + где он не был установлен ## [1.1.20] - 2020-08-18 + ### Changed + - Обновил SwiftLint утилиту до версии 0.40.0 - Отключены SwiftLint правила prohibited_nan_comparison, -return_value_from_void_function, tuple_pattern и void_function_in_ternary, так как -они были исключены из релиза + return_value_from_void_function, tuple_pattern и void_function_in_ternary, так как + они были исключены из релиза - Включены новые SwiftLint правила: prefer_zero_over_explicit_init ## [1.1.19] - 2020-08-18 + ### Changed + - После генерации проекта теперь автоматически не создается ветка 'develop' diff --git a/{{ cookiecutter.name }}/.ruby-version b/{{ cookiecutter.name }}/.ruby-version index 1f7da99..2451c27 100644 --- a/{{ cookiecutter.name }}/.ruby-version +++ b/{{ cookiecutter.name }}/.ruby-version @@ -1 +1 @@ -2.7.7 +3.0.7 diff --git a/{{ cookiecutter.name }}/Brewfile b/{{ cookiecutter.name }}/Brewfile deleted file mode 100644 index d62030f..0000000 --- a/{{ cookiecutter.name }}/Brewfile +++ /dev/null @@ -1 +0,0 @@ -brew "mint" diff --git a/{{ cookiecutter.name }}/Mintfile b/{{ cookiecutter.name }}/Mintfile deleted file mode 100644 index 23c906a..0000000 --- a/{{ cookiecutter.name }}/Mintfile +++ /dev/null @@ -1 +0,0 @@ -nicklockwood/swiftformat@0.52.0 diff --git a/{{ cookiecutter.name }}/README.md b/{{ cookiecutter.name }}/README.md index 0380dfd..40b2564 100644 --- a/{{ cookiecutter.name }}/README.md +++ b/{{ cookiecutter.name }}/README.md @@ -3,11 +3,13 @@ ## Bootstrapping development environment + ```sh make bootstrap ``` ## Xcode version + The project must use the specific version of Xcode that is specified in the `.xcode-version` file. This is important to ensure that everyone on the team is using the same version of Xcode, which avoids compatibility issues and makes it easier to collaborate. To ensure everyone has the correct version of Xcode, it's highly recommended to use [xcodes](https://github.com/RobotsAndPencils/xcodes) tool, which can automatically install and select the right Xcode version using the `xcodes install` and `xcodes select` commands. @@ -17,9 +19,11 @@ Before launching the project, it's important to confirm that each team member ha ## AppStore credentials Interaction with AppStore needs credentials. This project uses the official [AppStore API](https://docs.fastlane.tools/app-store-connect-api). For proper project deployment process, the project owner needs to create the `fastlane/app-key.json` file with access keys and encrypt by gpg tool with a strong password. + ```sh gpg -c fastlane/api-key.json ``` + The resulted encrypted file should be committed to the repository. ## Copyright @@ -28,4 +32,4 @@ The resulted encrypted file should be committed to the repository. --- -This project was created using [the project template](https://github.com/alphatroya/swift-project-template) version 2.1.0. +This project was created using [the project template](https://github.com/alphatroya/swift-project-template) version 2.2.0. diff --git a/{{ cookiecutter.name }}/swiftgen.yml b/{{ cookiecutter.name }}/swiftgen.yml index 4bcfabf..924bc1e 100644 --- a/{{ cookiecutter.name }}/swiftgen.yml +++ b/{{ cookiecutter.name }}/swiftgen.yml @@ -1,14 +1,5 @@ input_dir: {{ cookiecutter.name }}/Resources/ output_dir: {{ cookiecutter.name }}/Classes/Generated -ib: - inputs: Storyboards - outputs: - - templateName: scenes-swift5 - output: StoryboardScenes.swift - params: - ignoreTargetModule: true - - templateName: segues-swift5 - output: StoryboardSegues.swift fonts: inputs: Fonts outputs: diff --git a/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/Plist.swift b/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/Plist.swift deleted file mode 100644 index e69de29..0000000 diff --git a/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/StoryboardScenes.swift b/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/StoryboardScenes.swift deleted file mode 100644 index e69de29..0000000 diff --git a/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/StoryboardSegues.swift b/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/StoryboardSegues.swift deleted file mode 100644 index e69de29..0000000 diff --git a/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/Strings.swift b/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Classes/Generated/Strings.swift deleted file mode 100644 index e69de29..0000000 diff --git a/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Resources/Storyboards/.gitkeep b/{{ cookiecutter.name }}/{{ cookiecutter.name }}/Resources/Storyboards/.gitkeep deleted file mode 100644 index e69de29..0000000 From 6536a93b2d80d9b75ddfce83aebeaf3057283711 Mon Sep 17 00:00:00 2001 From: Alexey Korolev Date: Wed, 8 May 2024 09:30:21 +0300 Subject: [PATCH 2/5] Update Github Actions file --- .github/workflows/generate.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index 8159ca1..f859f8a 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -11,19 +11,12 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Cache Mint - id: cache-mint - uses: actions/cache@v3 - with: - path: ~/mint_cache - key: cache - - name: Generate project and run tests run: | export PATH=~/.rbenv/shims:"$PATH" - brew install cookiecutter rbenv mint && - rbenv install 2.7.7 && rbenv global 2.7.7 && + brew install cookiecutter rbenv && + rbenv install && cookiecutter --no-input -f . && cd Project && make test From 1b667b60b7aa78f8ef2791deef9e169c2cf70987 Mon Sep 17 00:00:00 2001 From: Alexey Korolev Date: Wed, 8 May 2024 09:32:40 +0300 Subject: [PATCH 3/5] Specify ruby version --- .github/workflows/generate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index f859f8a..d0d490e 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -16,7 +16,7 @@ jobs: export PATH=~/.rbenv/shims:"$PATH" brew install cookiecutter rbenv && - rbenv install && + rbenv install 3.0.7 && cookiecutter --no-input -f . && cd Project && make test From c43e6ba433a196d3b7f9eb9fc8047f0a2ac0c0c9 Mon Sep 17 00:00:00 2001 From: Alexey Korolev Date: Wed, 8 May 2024 09:36:08 +0300 Subject: [PATCH 4/5] Downgrade to ruby 3.0.6 --- .github/workflows/generate.yml | 2 +- CHANGELOG.md | 2 +- {{ cookiecutter.name }}/.ruby-version | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index d0d490e..d006200 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -16,7 +16,7 @@ jobs: export PATH=~/.rbenv/shims:"$PATH" brew install cookiecutter rbenv && - rbenv install 3.0.7 && + rbenv install 3.0.6 && cookiecutter --no-input -f . && cd Project && make test diff --git a/CHANGELOG.md b/CHANGELOG.md index 50b7f58..b818b03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Changed -- Обновлен ruby до 3.0.7 +- Обновлен ruby до 3.0.6 ### Removed diff --git a/{{ cookiecutter.name }}/.ruby-version b/{{ cookiecutter.name }}/.ruby-version index 2451c27..818bd47 100644 --- a/{{ cookiecutter.name }}/.ruby-version +++ b/{{ cookiecutter.name }}/.ruby-version @@ -1 +1 @@ -3.0.7 +3.0.6 From 9d2545eaa6719352f9f0d782c3b5183f98f5478d Mon Sep 17 00:00:00 2001 From: Alexey Korolev Date: Wed, 8 May 2024 09:52:56 +0300 Subject: [PATCH 5/5] Update github actions --- .github/workflows/generate.yml | 2 +- {{ cookiecutter.name }}/Makefile | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index d006200..358b5a2 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -15,7 +15,7 @@ jobs: run: | export PATH=~/.rbenv/shims:"$PATH" - brew install cookiecutter rbenv && + brew install cookiecutter rbenv mint && rbenv install 3.0.6 && cookiecutter --no-input -f . && cd Project && diff --git a/{{ cookiecutter.name }}/Makefile b/{{ cookiecutter.name }}/Makefile index f688bf5..f457a40 100644 --- a/{{ cookiecutter.name }}/Makefile +++ b/{{ cookiecutter.name }}/Makefile @@ -10,8 +10,7 @@ $(API_KEY): .PHONY: bootstrap ## bootstrap: Bootstrap project dependencies for development -bootstrap: homebrew hook certs - mint bootstrap +bootstrap: hook certs .PHONY: pods ## pods: Download project packages @@ -38,11 +37,6 @@ test: gems $(API_KEY) gems: bundle install -.PHONY: homebrew -## homebrew: Bootstrap Homebrew dependencies -homebrew: - brew bundle check || brew bundle - .PHONY: fmt ## fmt: Launch swift files code formatter fmt: