Рубрики
Без рубрики

ЛЕОН ОТКРЫТЫЙ СОСТОЯНИЕ ЛИЧНОСТЬ: Избавление от пыли / 1.0.0-бета.4

Через 2 года, наконец, новый релиз … Узнайте об основном направлении этого выпуска и о том, что он содержит. Tagged с OpenSource, JavaScript, Python, Node.

👋 Эй, все, пришло время … Как в конце концов ! Я знаю, что это было много времени. Проект был приостановлен около 2 лет. Мы поговорим о причинах этой бесконечной паузы в другом посте в блоге.

Сегодня мы сосредоточимся на новом выпуске Леон и понять, что нового, к которому ведет проект, и процесс мышления, стоящий за некоторыми решениями.

Основное внимание

В центре внимания этого выпуска весьма очевидно. 2 года пауза по проекту требует глубокой работы:

  1. Переосмысление о видении проекта.
  2. Переопределение, кто будет заинтересован в проекте.
  3. Анализ технического долга и принятие мер.

По крайней мере, так я собираю это.

Важно отметить, что работа здесь была не только технической. Мне нужно было переориентироваться на Почему Леона.

  • Почему я построил Леона на первом месте?
  • Какие проблемы решают?
  • Это все еще ценно сегодня?

Давайте сосредоточимся на технической части, так как другая часть будет рассмотрена в другом посте в блоге.

Обновления зависимости

Вот что происходит, когда вы не обновляете зависимости своего проекта около 2 лет … Пусть изображения говорят сами за себя.

После установки NPM

После строительства NPM запустить

Как выглядела история коммита …

Я считаю, что у вас есть приблизительное представление о том, что нужно было сделать. Ясно, я Обновлено все зависимости, на которые Леон опирается Анкет Конечно, я мог бы использовать такие инструменты, как Devingabot Но я предпочел обновлять все вручную. Это позволило мне лучше контролировать то, что я делал, и посмотреть, имеет ли каждая зависимость в проекте. Больше всего, и это только мое собственное мнение, я предпочитаю сохранять обновления зависимости как одноразовое задание вместо того, чтобы иметь шумы в запросах.

Я прочитал изменение каждого зависимости, чтобы понять, что изменилось, был улучшен, и проверить, произошло ли какое -либо нарушение.

Вы можете найти список всех обновлений Здесь Анкет

Сбрасывая хаски

Леон использовал Хаски Это вызвало сценарий, который я написал, чтобы разобрать сообщение о коммите на Commit-Msg Git крюк.

Это работало довольно хорошо после обновления, но клиенты с графическим интерфейсом, такие как Гиткракен больше не работал должным образом из -за их недавних изменений (это работало хорошо). Итак, я решил Drop Husky Или любой сценарий триггера Git Hook, потому что я не хочу, чтобы это было узким местом для участников. Поэтому я делаю это простым без ограничения.

Я считаю, что Anplying.md Файл достаточно, чтобы понять, как посвятить себя проекту. Тем не менее, очень важно уважать Конвенцию о совершении коммита, поскольку она облегчает поколение изменений для каждого нового выпуска.

Отбрасывая Вавилон?

В то время как Вавилон это потрясающий компилятор JavaScript, я собирался бросить его. Леону не нужно опережать текущие спецификации, я чувствовал, что это был хороший выбор, чтобы сбросить зависимости, связанные с Вавилоном, поскольку оно осветляет дерево зависимостей (что означает более быструю установку, меньшую работу по техническому обслуживанию и меньшую потенциальную проблему безопасности).

Более того, со времен node.js 14 мы можем Используйте экспериментальные модули Ecmascript которые являются официальным стандартным форматом для упаковки кода JavaScript для повторного использования. Node.js был только поддерживающим Commonjs (CJS) Модули до этого.

Но вот в чем дело, я хочу продолжать использовать Module-Alias NPM Package Как я нахожу, это приносит лучшую читаемость импорта. Я обнаружил, что для его разрешения требуется создание пользовательского погрузчика модуля. Я пришел к выводу, что это было слишком много шагов для достижения небольшого результата, а затем я решил отложить задачу отброса Babel. Если вы заинтересованы в этом конкретном случае, есть Продолжающаяся выпуск GitHub Анкет

Я мог бы Вернитесь к этой задаче, как только экосистема будет более готовой Анкет

Поддержка малины?

Благодаря последним изменениям, очевидно, Леон может поработать над По крайней мере, Raspberry 3b+ в соответствии с Этот комментарий Анкет Более глубокий вид будет предоставлен на этой стороне.

Не стесняйтесь вносить свой вклад.

Исправить обнаружение горячего слова

Леон использует Snowboy для обнаружения горячего слова. К сожалению, проект был прекращен и страдает от отсутствия обслуживания.

Действительно, Snowboy использует Узел-pre-gyp который помогает публиковать и установить node.js C ++ дополнений из двоичных файлов. Поэтому, когда новая версия Node.js отправлена, Узел-pre-gyp должен обновить свой список поддерживаемых целей, указав:

Обычно это делается через этот файл .

Несмотря на отсутствие обслуживания, я решил Создать Вилка снежника и сохранить это самостоятельно. На этой вилке, Snowboy работает с Node.js Как указано в этот вопрос комментарий Анкет

Пожалуйста, имейте в виду, что это Временное решение Как эта часть Леона должна быть улучшена в будущем. Если у вас есть какие -либо предложения для альтернативы обнаружения при горячих словах или вы хотите построить его, не стесняйтесь Снимите меня по электронной почте в louis.grenard@gmail.com Анкет

Я нашел несколько альтернатив, таких как Дикобраз от Picovoice Это работает довольно хорошо. Но на данный момент я пишу это, их инструменты не позволяют иметь короткое горячие слова, как Леон Анкет Что на самом деле является наилучшей практикой, но это означает, что нам нужно было бы соблюдать такие ограничения.

Есть еще …

Приведенные выше пункты были основными, на которых можно было бы сосредоточиться на этом выпуске. Но на самом деле с этим есть больше вещей!

Веб -приложение теперь работает на Vite

Я счастлив сказать, что Леон Веб -приложение теперь питается Vite Анкет Веб -приложение получит серьезные изменения в будущем, поэтому перед началом работы был необходим обзор.

Веб -приложение использовало некоторые функции node.js и Браузериф . Это ненужный слой в нашем случае. Я хотел, чтобы каждая функция была поддержана браузерами, поскольку будущие клиенты также будут поддерживать их уважаемую платформу.

Теперь, когда мы находимся в явной кодовой базе браузера, именно здесь Vite входит в игру. В сумме: лучше Dx и производительность.

Узнайте о преимуществах Здесь Анкет

От Circleci до GitHub действий

До некоторое время я всегда использовал Circleci Для моих проектов, как я думаю, это отличная работа для CI и CD Анкет

Однако, поскольку Github запустил Действия GitHub Мне понравилась идея иметь кодовую базу близко к CI, поэтому нам не нужно выходить из экосистемы Github.

Иногда на Circleci у Леона возникли проблемы с обновления Node.js 14+ от изображения CI Docker от Леона. Один и тот же образ Docker прекрасно заканчивал все задания на разных машинах, но не на Circleci. Это было выведено или заканчивалось с ошибкой для сквозных тестов модулей. Ошибка была связана с node.js Дочерний процесс это не сработало. Так что я стараюсь, что это иногда заканчивалось.

С тех пор, как я мигрировал на действия GitHub, ничего из этого не произошло. Поскольку Леон использовал тип Docker на Circleci, похоже, что на действиях GitHub немного больше аппаратной мощности. Я не пробовал с необработанными типами Linux Circleci, так как хотел использовать Изображение Docker Леона, посвященное его CI Анкет

Circleci

Действия GitHub

Сегодня CI Леона состоит из 3 действий GitHub рабочие процессы :

  • сборка : чтобы обеспечить успешно Леона.
  • Lint : Чтобы убедиться, что исходный код написан в соответствии с стандартами проекта.
  • Тесты : Чтобы обеспечить качество функций.

Если вы заинтересованы в переходе из Circleci в GitHub Actions, GitHub собрал вместе статья Это довольно просто.

От express.js, чтобы ускорить

Леону нужен HTTP -сервер, чтобы клиенты могли захватывать некоторые метаданные, такие как версия, язык и т. Д., И для большего в будущем … Именно здесь также случается рукопожатие WebSocket установить двунаправленную связь с клиентами.

Большую часть времени мы слышим о Express.js Потому что это хорошо зарекомендовавшая себя веб -структуру в экосистеме Node.js, с первых дней. Но Фастификация также присоединился к OpenJS Foundation Что означает, что это также серьезно.

Я согласен с большей частью того, что объясняется в этой статье.

Спасибо великой работе от Divlo , миграция поставляется с этим новым выпуском.

Попробуйте Леона с одним щелчком

Вы можете попробовать Леона с одним щелчком благодаря Gitpod Анкет

Он автоматически настраивает среду со всеми требованиями и запустит экземпляр для вас. Это позволяет потенциальным участникам начать довольно быстро и повысить ценность проекта.

Вы можете Попробуйте здесь Анкет

Опять слава Divlo для предложения и дела это происходит 👏

Force Minimum Node.js версия

Чтобы обеспечить соблюдение минимальных версий Node.js и NPM, в package.json файл:

"engines": {
  "node": ">=14.0.0",
  "npm": ">=5.0.0"
}

Новый NLP

С момента предыдущего релиза, Nlp.js продвинули много работы и выпустил крупную версию, переходя от монолитной библиотеки в несколько независимых пакетов. Поэтому я потратил некоторое время, чтобы сделать НЛП Леона совместимым с последними изменениями.

Эти изменения в основном включают Ner и Nlu Леона и все еще использует нейронную сеть.

Всегда больше …

Пожалуйста, не стесняйтесь взглянуть на Дорожная карта Полное понимание того, что было сделано для этого выпуска.

Нарушение изменений

Этот релиз включает в себя несколько, если это почти никто не нарушает изменения:

  • Был ли я модуль : теперь требуется ключ иметь возможность запросить их API.
  • IBM Watson : IBM остановит их Legacy API (конец жизни 26 мая 2021 года). Леон соответствует последним изменениям IBM Watson Node.js SDK. Если вы используете Watson TTS или Watson Stt, вы можете внести изменения, как указано в Документы Анкет
  • Amazon Polly : Amazon проделал полную модульную переписывание их Node.js SDK. Леон соответствует этим изменениям. Если вы используете Amazon Polly, обязательно вытащите последнюю структуру файла конфигурации для Amazon Polly.

Что дальше

Долгосрочный

В долгосрочной перспективе необходимо соблюдать важное руководство, чтобы Леон мог лучше сиять:

  1. Радикальные улучшения нужно сделать на Фонды/ядро и Инструмент боки. Это включает в себя контекст в модулях, JavaScript Bridge, чтобы мы могли написать модули JavaScript, виджеты для лучших выходов модулей, динамическая поддержка с несколькими языками на грани, новых клиентов и так далее …
  2. Тогда мы надеемся, что сможем выращивать сообщество Больше благодаря тому, что Леон сможет сделать.
  3. Масштаб Леон с новым Полезные модули Анкет
  4. Идея – Подойдите ближе и ближе к ассистентам с закрытым исходным кодом Благодаря растущему сообществу и лучшим фондам. Но по Всегда Поддерживая ядро открытым и гибкость, которая бросает вызов нашему воображению.

Более короткий термин

В более коротком сроке, вот что мы можем ожидать:

  • A Пост в блоге Объясняя мой Возвращаясь В проекте Почему и вещи, которые я упоминал ранее. Это важно для мне Поделитесь своими мыслями и этим путешествием Анкет
  • A Полный ребрендинг С новой визуальной идентичностью проекта, который отражает больше Значения и видение Леона Анкет
  • CLI Таким образом, это улучшает опыт адаптации, удаляя хлопоты требований, централизацию команд и многое другое … Престижность Артур и Divlo кто над этим работает! 👏
  • Взгляните на Дорожная карта Чтобы увидеть больше.

Приветствия 🍹, Луи ( @louistiti_fr )

Оригинал: “https://dev.to/louistiti/getting-rid-of-dust-1-0-0-beta-4-3f16”