Семантическое обновление версии
Этот инструмент автоматизирует процесс обновления версий в Composer-проектах на основе анализа Git-коммитов и генерации CHANGELOG. Он помогает соблюдать семантическое версионирование и стандарт Conventional Commits.
👩💻 https://github.com/Voral/vs-version-incrementor
Автор: @vasoft
#semanticVersioning #versionIncrement #git #composer #changelog
Этот инструмент автоматизирует процесс обновления версий в Composer-проектах на основе анализа Git-коммитов и генерации CHANGELOG. Он помогает соблюдать семантическое версионирование и стандарт Conventional Commits.
Автор: @vasoft
#semanticVersioning #versionIncrement #git #composer #changelog
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Voral/vs-version-incrementor: A tool for semantic versioning and changelog generation in Composer projects based on Git…
A tool for semantic versioning and changelog generation in Composer projects based on Git commits. - Voral/vs-version-incrementor
🔥4👍3
🔥 Делитесь своими Open Source задачами и проектами! 🔥
Если у вас есть проблема в проекте — не держите её в себе
- Нужно ревью?
- Нужен исполнитель?
- Застряли на сложной задаче?
- Нужны свежие идеи или тестировщики?
Есть крутой проект, но не хватает фидбэка, ревью или идей?
- Поделитесь им здесь
- Расскажите, какая помощь нужна
- Найдите единомышленников
Кстати, список свои Issue можно посмотреть по ссылке: https://github.com/issues
А Pull requests здесь: https://github.com/pulls
Если у вас есть проблема в проекте — не держите её в себе
- Нужно ревью?
- Нужен исполнитель?
- Застряли на сложной задаче?
- Нужны свежие идеи или тестировщики?
Есть крутой проект, но не хватает фидбэка, ревью или идей?
- Поделитесь им здесь
- Расскажите, какая помощь нужна
- Найдите единомышленников
Кстати, список свои Issue можно посмотреть по ссылке: https://github.com/issues
А Pull requests здесь: https://github.com/pulls
🔥6👍3😁1
Open Source: PHP pinned «🔥 Делитесь своими Open Source задачами и проектами! 🔥 Если у вас есть проблема в проекте — не держите её в себе - Нужно ревью? - Нужен исполнитель? - Застряли на сложной задаче? - Нужны свежие идеи или тестировщики? Есть крутой проект, но не хватает фидбэка…»
Сделать поддержку optional chaining operation `user?.id` в Twig
Вот уже 5 лет ребята не могут втащить оператор для обращения к объектам если они null.
Отличная штука которая хорошо сочетается с
Для шаблонного языка я думаю это must-have, но никто не хочет ничего делать, вот только еще до самого issue придумали оператор
👩💻 https://github.com/twigphp/Twig/issues/3260
#twig #symfony
Вот уже 5 лет ребята не могут втащить оператор для обращения к объектам если они null.
Отличная штука которая хорошо сочетается с
?:
или ??
операторами для вывода значения по умолчанию: user?.image ?? ‘/no-image.png’
. Для шаблонного языка я думаю это must-have, но никто не хочет ничего делать, вот только еще до самого issue придумали оператор
???
.#twig #symfony
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
[Feature] Optional chaining operator · Issue #3260 · twigphp/Twig
Add support for the optional chaining operator ?. that is available in: JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining TypeScritp 3.7: htt...
👍5🔥1
Добавляет именованные аргументы в зависимости от настроек
👩💻 https://github.com/savinmikhail/AddNamedArgumentsRector
👤 Автор: @msavin_dev
#tool #rector
👤 Автор: @msavin_dev
#tool #rector
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - savinmikhail/AddNamedArgumentsRector: Plugin to rector, that adds named arguments to your codebase
Plugin to rector, that adds named arguments to your codebase - savinmikhail/AddNamedArgumentsRector
🔥5👍3
Comments Density Analyzer
Проблемы, решаемые проектом – управление комментариями, например:
- создание issues в трекере под каждую todo/fixme, шоб код не зарастал техдолгом
- запрет на использование обычных комментов, так как мы стремимся писать самодокументированный код
Можно просто получать статистику твоего проекта.
Есть возможность подключения плагинов (можно подключить клиент YouTrack'a для создания тикетов)
👩💻 https://github.com/savinmikhail/Comments-Density
👤 Автор: @msavin_dev
🔨 Линч: https://www.youtube.com/live/FYVfQk0-t3U?si=4zeA-fgWinasI9YK
Проблемы, решаемые проектом – управление комментариями, например:
- создание issues в трекере под каждую todo/fixme, шоб код не зарастал техдолгом
- запрет на использование обычных комментов, так как мы стремимся писать самодокументированный код
Можно просто получать статистику твоего проекта.
Есть возможность подключения плагинов (можно подключить клиент YouTrack'a для создания тикетов)
👤 Автор: @msavin_dev
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - savinmikhail/Comments-Density: A code quality control tool for PHP that will give you an idea of the composition of comments…
A code quality control tool for PHP that will give you an idea of the composition of comments in the codebase, and help improve documentation - savinmikhail/Comments-Density
👍4🔥3🎉2
Нужно добавить поддержку функций в Infection.
Есть старый PR, который можно доработать.
👩💻 https://github.com/infection/infection/issues/1482
#infection #tool
Есть старый PR, который можно доработать.
#infection #tool
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
All mutants marked as not detected when using Composer files autoload option · Issue #1578 · infection/infection
Question Answer Infection version 0.25.1 Test Framework version PHPUnit 9.5.9 PHP version PHP 8.0.10 (cli) Platform MacOS Github Repo Repo Hi all, I have an issue with a new infection install. I...
👍5🔥3👏2
Обновить yiisoft/error-handler в интеграционном пакете Spiral
👩💻 https://github.com/spiral-packages/yii-error-handler-bridge/issues/12
Мы в Spiral 3.0 выкинули всякие штуки, которые неплохо реализованы у других. Это коснулось и рендерера ошибок: мы взяли yiisoft/error-handler и воткнули туда свою цветовую схему и лого.
Однако, там оказалось хреново с совместимостью: нет API для кастомизации и, как следствие, в каждом миноре/патче может сломаться всё, что не относится к PHP сигнатурам (вёрстка и передаваемые переменные в шаблоны).
А тут ещё и мажор!
Надо выяснить, что сломали в новом релизе и перейти на него.
#exceptions #spiral #yii
Мы в Spiral 3.0 выкинули всякие штуки, которые неплохо реализованы у других. Это коснулось и рендерера ошибок: мы взяли yiisoft/error-handler и воткнули туда свою цветовую схему и лого.
Однако, там оказалось хреново с совместимостью: нет API для кастомизации и, как следствие, в каждом миноре/патче может сломаться всё, что не относится к PHP сигнатурам (вёрстка и передаваемые переменные в шаблоны).
А тут ещё и мажор!
Надо выяснить, что сломали в новом релизе и перейти на него.
#exceptions #spiral #yii
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Adopt v4 · Issue #12 · spiral-packages/yii-error-handler-bridge
https://github.com/yiisoft/error-handler/releases/tag/4.0.0
🔥10
Forwarded from Roman Pronskiy
Нужна помощь добить https://github.com/pronskiy/phpup
Видение такое: один бинарник, который скачивааешь без наличи пхп и всего и он содержит в себе композер (или устанавливает его) и умеет запускать любые пхп скрипты или репозитории или скрипты из репозиториев.
Видение такое: один бинарник, который скачивааешь без наличи пхп и всего и он содержит в себе композер (или устанавливает его) и умеет запускать любые пхп скрипты или репозитории или скрипты из репозиториев.
GitHub
GitHub - pronskiy/phpup: The PHP toolchain: run Composer, PHPStan, Rector, or any PHP script without having PHP installed.
The PHP toolchain: run Composer, PHPStan, Rector, or any PHP script without having PHP installed. - pronskiy/phpup
🔥8🤣2
18-19 апреля пройдет большая конференция Стачка
На стачке я расскажу про MetaStorm плагин, а Алексей Нечаев @mrboneskhv продолжит удивлять нас работой PHP с ML в докладе “Создание производительных ML-приложений на базе PHP”.
Если вам интересно углубиться, то уже сейчас можете зарешать парочку тикетов из https://github.com/RubixML/ML
——
Алексей готов сделать розыгрыш своего +1 промокода.
Я думал что бы такого придумать с розыгрышем, но ничего интересного не придумал, кроме следующей идеи:
1. В розыгрыше участвуют все, кто напишет комментарий в ответ на это сообщение
2. Кто сделает тикет из любых проектов в https://github.com/RubixML, тому добавляется вес +1
3. 11 или 12 апреля делаем розыгрыш среди всех участников, которые отписались под постом
Как будет работать “+1 вес”:
К примеру, у Димы количество баллов 1, значит я занимаю позицию N1.
Алексей сделал 2 тикета и у него количество баллов 1+2=3, значит он занимает позиции N2, N3, N4.
Такой вот нехитрый способ занять несколько мест, чтобы увеличить свои шансы, но шансы других всё еще актуальны.
Пожалуйста, не участвуйте в розыгрыше, если вы точно не поедете на конференцию.
Кстати, вот список всех PHP докладов, а здесь список вообще всех докладов про разработку
На стачке я расскажу про MetaStorm плагин, а Алексей Нечаев @mrboneskhv продолжит удивлять нас работой PHP с ML в докладе “Создание производительных ML-приложений на базе PHP”.
Если вам интересно углубиться, то уже сейчас можете зарешать парочку тикетов из https://github.com/RubixML/ML
——
Алексей готов сделать розыгрыш своего +1 промокода.
Я думал что бы такого придумать с розыгрышем, но ничего интересного не придумал, кроме следующей идеи:
1. В розыгрыше участвуют все, кто напишет комментарий в ответ на это сообщение
2. Кто сделает тикет из любых проектов в https://github.com/RubixML, тому добавляется вес +1
3. 11 или 12 апреля делаем розыгрыш среди всех участников, которые отписались под постом
Как будет работать “+1 вес”:
К примеру, у Димы количество баллов 1, значит я занимаю позицию N1.
Алексей сделал 2 тикета и у него количество баллов 1+2=3, значит он занимает позиции N2, N3, N4.
Такой вот нехитрый способ занять несколько мест, чтобы увеличить свои шансы, но шансы других всё еще актуальны.
Пожалуйста, не участвуйте в розыгрыше, если вы точно не поедете на конференцию.
Кстати, вот список всех PHP докладов, а здесь список вообще всех докладов про разработку
ul25.nastachku.ru
«Стачка» Международная IT-конференция
Официальный сайт ежегодной IT-конференции «Стачка»: Digital-коммуникации, Программирование, IT-стартапы, Электронная коммерция…
🔥4👍3
А если вы хотите контрибьютить, но пока есть вопросы “как это делать”, то видео от Валентина Удальцова поможет вам разобраться как это делать.
Forwarded from Пых (Валентин Удальцов)
Смерджили мой PR в Brick\Math с Open Source Цеха #4!
https://github.com/brick/math/pull/90
Суть изменения тривиальна: сузить возвращаемый тип
Сначала на стриме я попробовал по-честному расставить типы по всей внутрянке, но упёрся в то, что в местах конкатенации
BenMorel согласился с моими доводами и зарелизил улучшение в 0.13.1.
Процесс контрибьютинга от форка до PR:
https://youtu.be/viWYmUUsD5I?t=3900s
https://vkvideo.ru/video-228746873_456239037?t=1h7m20s
https://github.com/brick/math/pull/90
Суть изменения тривиальна: сузить возвращаемый тип
BigInteger::__toString()
и BigDecimal::__toString()
до numeric-string
, чтобы после приведения к строке значения можно было передавать в numeric-string
и non-empty-string
параметры (мне это потребовалось в недрах Typhoon).Сначала на стриме я попробовал по-честному расставить типы по всей внутрянке, но упёрся в то, что в местах конкатенации
numeric-string
не выводится и его нужно форсить (прописывать @var
или assert
). В итоге предложил автору лёгкий путь: зафорсить тип только в самом методе __toString()
и больше ничего не менять.BenMorel согласился с моими доводами и зарелизил улучшение в 0.13.1.
Процесс контрибьютинга от форка до PR:
https://youtu.be/viWYmUUsD5I?t=3900s
https://vkvideo.ru/video-228746873_456239037?t=1h7m20s
GitHub
Force numeric-string return type in BigDecimal::__toString() and BigInteger::__toString() by vudaltsov · Pull Request #90 · brick/math
Closes #89.
@return numeric-string cannot be added to BigRational, because '10/20' is not a numeric string. So I added numeric-string to BigDecimal and BigInteger classes only. This...
@return numeric-string cannot be added to BigRational, because '10/20' is not a numeric string. So I added numeric-string to BigDecimal and BigInteger classes only. This...
👍1
Add lightweight PSR-3 implementation that can be easily use with Trap, compatible with fibers, etc
#buggregator #trap
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Add lightweight PSR-3 implementation · Issue #179 · buggregator/trap
Description Add a standalone PSR-3 implementation that works with Trap and is compatible with both fiber-based asynchronous code and synchronous execution. Requirements Implementation must be self-...
MSSQL не поддерживается в Ubuntu 22, только в Ubuntu 20. А Github Actions не поддерживают Ubuntu 20.
Нужно заставить работать MSSQL в CI, чтобы прогонять тесты в yiisoft/db. Больше информации в тикете
#yii #yii3 #db #mssql
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Fix MSSQL 2017 GitHub action · Issue #958 · yiisoft/db
MSSQL 2017 docker images don't run correctly in Ubuntu 22+ (See #957) GitHub drop support of Ubuntu 20 runners. So we can't run tests with MSSQL 2017 (e.g. https://github.com/yiisoft/db/act...
😁2👍1👎1
Dmitrii
18-19 апреля пройдет большая конференция Стачка На стачке я расскажу про MetaStorm плагин, а Алексей Нечаев @mrboneskhv продолжит удивлять нас работой PHP с ML в докладе “Создание производительных ML-приложений на базе PHP”. Если вам интересно углубиться…
Напоминаю, что идет розыгрыш бесплатной проходки на Стачку.
Нужно всего лишь написать коммент и приехать в Ульяновск.
Кстати, уже есть и второй билет, но даже первый никому не нужен🫠
Нужно всего лишь написать коммент и приехать в Ульяновск.
Кстати, уже есть и второй билет, но даже первый никому не нужен
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8👍1
Неделя «High Performance» на PHP Crew от Podlodka пройдет 21-25 апреля!
Анонс от подлодки:
```
В новом сезоне:
- разберемся, как настроить RoadRunner для максимальной производительности;
- обсудим, как реализовать балансировку трафика и горизонтальное масштабирование приложений;
- посмотрим на примерах на низкоуровневую оптимизацию: от кода до AI-агентов;
- поймем, как лучше оптимизировать БД при высоконагруженном PHP-приложении.
```
https://podlodka.io/phpcrew
Если вы еще не купили билет, но хотите сходить – попробуйте сначала выиграть у Олега в канале:
– комент под постом
- ждём недельку
——
Тем временем на Стачку разыгрывается уже 3 билета! Через пару дней выберем счастливчиков.
Хотите анонсы и розыгрыши проходок на митапы в этом канале или лучше этого не делать?
Анонс от подлодки:
```
В новом сезоне:
- разберемся, как настроить RoadRunner для максимальной производительности;
- обсудим, как реализовать балансировку трафика и горизонтальное масштабирование приложений;
- посмотрим на примерах на низкоуровневую оптимизацию: от кода до AI-агентов;
- поймем, как лучше оптимизировать БД при высоконагруженном PHP-приложении.
```
https://podlodka.io/phpcrew
Если вы еще не купили билет, но хотите сходить – попробуйте сначала выиграть у Олега в канале:
– комент под постом
- ждём недельку
——
Тем временем на Стачку разыгрывается уже 3 билета! Через пару дней выберем счастливчиков.
Хотите анонсы и розыгрыши проходок на митапы в этом канале или лучше этого не делать?
podlodka.io
Онлайн-конференция Podlodka PHP Crew, сезон #7
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным вопросам PHP-индустрии, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
👍2👎1
Forwarded from Позовите Олега | Архитектура и разработка
podlodka.io
Онлайн-конференция Podlodka PHP Crew, сезон #7
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным вопросам PHP-индустрии, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Через 2 недели (с 21 по 25 апреля) начнётся онлайн конференция Podlodka Php Crew которая будет проходить целых 5 дней. Тема сезона - High Performance. Т.е. про оптимизацию всего связанного и не связанного с php. Я там буду выступать и расскажу почему индексы не работают. Вообще тема индексов достаточно избитая, часто слышу "тормозят запросы в базу - создай индекс". Ну изи же.
🔹 А что если он не будет работать в условиях этого запроса?
🔹 Или вред от него будет выше, чем польза?
🔹 Или почему планировщик вообще игнорирует ваш, на первый взгляд, валидный индекс?
Вообще с планировщиком всегда непросто, и не всегда понятно как он выбирает путь исполнения запроса и индекс. Но есть хитрости, как заставить, например, планировщик mysql использовать индекс.
✅ Директива USE INDEX
Это, так скажем, "мягкая" рекомендация для планировщика выбрать указанный индекс. Но она может быть проигнорирована, если будет более оптимальный путь.
SELECT * FROM users USE INDEX (idx_email) WHERE email = '[email protected]';
✅ Директива FORCE INDEX
"Жесткая" директива, требующая от потимизатора использовать указанный индекс, даже если он считает это не оптимальным. При этом оптимизатор игнорирует оценку стоимости альтренатив
SELECT * FROM users FORCE INDEX (idx_email) WHERE email = '[email protected]';
Допустим есть запрос
SELECT * FROM orders WHERE customer_id = 42 AND status = 'done';
записей с customer_id=42, допустим, 1000 с разными значениями в status, а со status = done и разными customer_id - 50000.
И есть 2 индекса - на customer_id, и на status. Тут планировщик выберет customer_id, это более селективно.
Но вот мы взяли и зафорсили индекс по status, нам показалось так лучше (
SELECT * FROM orders FORCE INDEX (idx_status) WHERE customer_id = 42 AND status = 'done';
в итоге получим, что сначала запрос отберёт 50000 записей со status = done, а потом из них возмёт 100 записей с customet_id 42. Вот такая оптимизация.
В PostgreSQL такогих деректив нет. Но есть другие "приёмы" как можно скорректировать работу планировщика.
Вообще, на мой взгляд, к такому нужно относится с большой осторожностью. Если без костылей не получается завести индекс, вероятно что-то мы делаем не так.
В своём докладе я расскажу и об этом, и о том почему индексы игнорируются или работают не эфективно. У меня есть проходка на мероприятие и ,если мой доклад интересен, то есть шанс послушать его в живую, а так же все остальные с Podlodka Php Crew. Для этого нужно оставить любой комментарий к посту, победителя выберу случайным образом через неделю 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1👨💻1
@viktorprogger
@evgwed
@tashimotor
Выиграли билеты на стачку. Если вам не нужны эти билеты, напишите мне я передам их другим!
@evgwed
@tashimotor
Выиграли билеты на стачку. Если вам не нужны эти билеты, напишите мне я передам их другим!
❤1🎉1
Forwarded from Alexander Vorobyev
Нужен совет/рекомендации/доводы/мысли.
Ситуация следующая: в модуль добавил больше расширяемости. И все расширения производятся через объект конфигурации. Соответственно класс конфигурации растет. Там нет сложной логики, хотя в некоторых случаях он выступает как фабрика (значения по умолчанию). В основном это конечно же просто геттеры и сеттеры.
Тем не менее scrutinizer-ci . Присвоил классу значек "F" и отображает его красным. С пояснением
Total Complexity 60 , Total Lines 827 .
Как подходить в таких случаях? Действительно ли стоит следовать его рекомендациям в таких случаях?
Подумываю разбить на трейты (по логическим группам). Сначала была мысль создавать некие классы для подобных групп - своего рода отдельные конфиги и затем их передавать в основной конфиг. Но это как то, на мой взгляд, в итоге усложнит читабельность файла конфигурации.
Речь идет вот об этом классе https://github.com/Voral/vs-version-incrementor/blob/master/src/Config.php
#semver #changelog
Ситуация следующая: в модуль добавил больше расширяемости. И все расширения производятся через объект конфигурации. Соответственно класс конфигурации растет. Там нет сложной логики, хотя в некоторых случаях он выступает как фабрика (значения по умолчанию). В основном это конечно же просто геттеры и сеттеры.
Тем не менее scrutinizer-ci . Присвоил классу значек "F" и отображает его красным. С пояснением
Total Complexity 60 , Total Lines 827 .
Как подходить в таких случаях? Действительно ли стоит следовать его рекомендациям в таких случаях?
Подумываю разбить на трейты (по логическим группам). Сначала была мысль создавать некие классы для подобных групп - своего рода отдельные конфиги и затем их передавать в основной конфиг. Но это как то, на мой взгляд, в итоге усложнит читабельность файла конфигурации.
Речь идет вот об этом классе https://github.com/Voral/vs-version-incrementor/blob/master/src/Config.php
#semver #changelog
GitHub
vs-version-incrementor/src/Config.php at master · Voral/vs-version-incrementor
A tool for semantic versioning and changelog generation in Composer projects based on Git commits. - Voral/vs-version-incrementor
Добавить поддержку выражений
В Symfony есть Expression Language и его поддержка в валидаторе.
Было бы круто иметь подобный валидатор для Yii3.
Нужно написать бридж к Expression Language, довольно интересная задачка!
п.с. я умел раньше писать тз 😁
👩💻 https://github.com/yiisoft/validator/issues/518
#yii #yii3 #validator
В Symfony есть Expression Language и его поддержка в валидаторе.
Было бы круто иметь подобный валидатор для Yii3.
Нужно написать бридж к Expression Language, довольно интересная задачка!
п.с. я умел раньше писать тз 😁
#yii #yii3 #validator
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Add support for expressions · Issue #518 · yiisoft/validator
A suggestion from @xepozz. prop1 prop2 prop3 Expression(this.prop1 > this.prop2 || this.prop1 in Constants::VALUES) prop1
👍6🔥4👎1