Salesforce DX

Salesforce DX

При создании на DevHub Scratch орга VScode без проблем его открывает через CLI и пушит код. Но по прошедствии времени (суток, а точнее когда выключил комп и включи его на след. день) все идет не по плану. А именно: авторизуюсь на DevHub и пытаюсь открыть scratch орг через CLI. Выдает ошибку " Error authenticating with the refresh token due to: expired access/refresh token". Авторизоваться через IDE тоже не дает. С помощью команды sfdx force:org:list вижу его в активных. Через браузер на него зайти могу без проблем. Через IDE никак, соответственно и не могу сделать push. Токен на scratch орге сбросить и получить новый могу, но куда его всунуть, не знаю, никаких команд такого рода нету. Кто что знает, как длительное время работать со scratch оргом, прошу дать совет.

По умолчанию Scratch орг протухает через 7 дней.
сделай
sfdx force:org:list --all
и смотри столбцы STATUS и EXPIRATION DATE

Количество дней до экспирации можно задать самому, валидны значения от 1 до 30
sfdx force:org:create -f config/project-scratch-def.json -d 30

akr0bat
По умолчанию Scratch орг протухает через 7 дней.

Это уже все было сделано. Орг светится в активных. Затык был в том, что через CLI по ходу вообще не реально законектиться. А через Ctrl+Shift+P нужно было выбирать Auth to Org и выбирать sanbox, а не custom.

Еще пару вопросов по DX. предполагает ли эта разработка участие нескольких разработчиков на одном scratch орге.? В теории вроде бы да, но на практике фигня какая-то выходит. Если я создал у себя в IDE scratch org, то никаких проблем. Я спокойно создаю классы, делаю sfdx force:source:push, делаю sfdx force:source:pull, когда создаю какие-либо объекты и поля на орге. НО!!! как только подключается другой разработчик,пулит себе проект,иногда он может вообще не вытянуться и приходиться тянуть исходный проект с git. Если он вытянул и делает изменение в контроллере, мой sfdx force:source:pull этого не видит и не вытягивает изменения. Только через ретрив папки с классами. То же самое, когда я к примеру создал lwc и запушил на орг. Он делает pull, и в IDE папке lwc у него пусто, только ретрив папки. А что, если я не знаю, что он менял, что ретривить??? package.xml в данном случае нету. Кто что скажет по поводу нормального алгоритма? Подозреваю конечно, что все это сначала пушиться на git, а потом уже вытягивается в IDE, но все же.!!!?

Вся суть scratch оргов в том что их можно создавать пачками и использовать каждому разрабу свой. Если раньше был один орг где все работали и гит репозиторий то была реальная попа-боль правильно это дело синхронизировать. Не понятно что было первично (источником правды) репозиторий или дев орг. Со скратч оргами репозиторий это основной источник правды для кода, а на скратч орги код заливается из репозиторий. Ни в коем случае нельзя использовать один скратч орг более чем одному разрабу. DX подразумевает что новый разраб сливает себе в проект последнее состояние из репозитория и заливает это дело на свой (новый) скратч орг. Девелопит что-то и по окончанию комитит в репозиторий. Другой разраб сливает из репозиотория новые изменения и деплоит на свой орг. С одним скратч оргом на нескольких разрабов ты просто возвращаешься обратно в каменный век.

Вот буквально пример из жизни пару дней назад. Один орг (правда не скретч, а обычный дев), один репозиотрий, и один разраб. Все предельно ясно и все работает. Пришел другой разработчик запилил кое небольшой таск и свои изменения залил в репозиторий (о чем отписал в чате). Я делаю pull из репозиотрия и виду его комиты с новым кодом. Потом делаю project refresh из орга и вижу в тех же файлах еще какие-то изменения которых нет в репозитории. Вопрос. Где источник правды? Где правильный код? В репозитории что я слил (о чем отписал другой разраб) или то что сейчас на орге где работал этот разраб? Если в репозиотории что я должен залить код на орг и затереть то что сейчас на орге. Если на орге, то возможно это какие-то левые дебаг изменения которые другой разраб просто сделал потом но не считает их нужными вкючать в репозиторий. Звучит запутанно, то так ведет себя любой старый проект на SF где есть git и есть два и более разраба на одном орге. DX появился чтобы эту хрень исключить.

Dmitry Shnyrev
Вся суть scratch оргов в том что их можно создавать пачками и использовать каждому разрабу свой.

В принципе ты подтвердил мои ожидания. Это конечно все ну прям очееень удручает. Спасибо!

Dmitry Shnyrev
Вот буквально пример из жизни пару дней назад. Один орг (правда не скретч, а обычный дев), один репозиотрий, и один разраб. Все предельно ясно и все работает. Пришел другой разработчик запилил кое небольшой таск и свои изменения залил в репозиторий (о чем отписал в чате). Я делаю pull из репозиотрия и виду его комиты с новым кодом. Потом делаю project refresh из орга и вижу в тех же файлах еще какие-то изменения которых нет в репозитории.

Тут предельно просто - репозиторий должен быть всегда источником правды. Так гораздо проще и удобнее всем.

Dmitry Shnyrev
В репозитории что я слил (о чем отписал другой разраб) или то что сейчас на орге где работал этот разраб

Попробуй как нить отмудохать того разработчика за такую херню
Пару раз и он запомнит последовательность действий)

EvAzi
Тут предельно просто - репозиторий должен быть всегда источником правды. Так гораздо проще и удобнее всем.

Золотые слова. Беда в том, что некоторые мои коллеги меня просто не слышат и делают деплой кода на орг!

Maxim Elets
Попробуй как нить отмудохать того разработчика за такую херню
Пару раз и он запомнит последовательность действий)

Не, зачем так радикально. Разработчик такой же опытный что и я. Просто разные ситуации бывают. Как я написал на орге просто могли остаться какие-то изменения для тестирования, которые другой разработчик внес после того как собрал коммит. Да я сам иногда грешу, когда работаю долго один на проекте, - забываю в репозиторий залить свои изменения.

EvAzi
Тут предельно просто - репозиторий должен быть всегда источником правды. Так гораздо проще и удобнее всем.

100% правда. Но что делать если другой разработчик работает на орге и не успел залить свои изменения в репозиотрий. А ты слил из репозитория код, сделал какие-то изменения в классах и нажал CTRL+S.

Именно поэтому серьезные проекты даже в эпоху ДО-DX старались делать отдельные developer орги под каждого разраба, а репозиторий был единственным источником который их всех объединял.

pazik36
Золотые слова. Беда в том, что некоторые мои коллеги меня просто не слышат и делают деплой кода на орг!

Так а тебе какая печаль с этого?
Стянул измения с репозитория -> создал свой личный отдельный scratch -> сделал на нем таску -> запушил в git -> профит

А остальные пусть деплоят как хотят.

Dmitry Shnyrev
Не, зачем так радикально. Разработчик такой же опытный что и я. Просто разные ситуации бывают. Как я написал на орге просто могли остаться какие-то изменения для тестирования, которые другой разработчик внес после того как собрал коммит. Да я сам иногда грешу, когда работаю долго один на проекте, - забываю в репозиторий залить свои изменения.

Знаю я таких опытных, которые делают коммит один раз в неделю!:D

Вообще практика 1 рыло - 1 орг, должна быть основной, а там не важно scratch или любой другой орг.
Когда работает даже 2 человека на одном орге, есть вероятность, что можно просто очень легко затереть правки над которыми ты работал месяц

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

Maxim Elets
о том что бы сослать их нахер

есть нюансы

Interesting information? Help us, post link to social media..