Хах, решение оказалось не очевидным.
Оказывается, в окружении Go была активирована переменная GO111MODULE. Ее отключение командой go env -w GO111MODULE=off убрало поиск моих пакетов в GOROOT и расширило взгляд парсера до директорий GOPATH и включение зависимостей по go.mod.
Также пришлось заново использовать go get, но это не проблема =)
И в результате удалось собрать учебный проект со всем, что нужно.
Хахаха, еще одно обновление =))) Далее очевидная информация, однако мне стоило много нервов в ней разобраться =))) Но считаю важным написать сюда, потому что представленное решение ошибки: package ... is not in GOROOT неверное, и у меня заработало по счастливому стечению обстоятельств.
В общем, разобрался наконец с этой переменной окружения GO111MODULE.
В режиме on - всегда видит только модули.
В режиме off - только GOPATH и GOROOT
В режиме auto - туда и сюда в зависимости от существования go.mod.
Ошибка же была в том, что это я дурак, как обычно =)))
Изучение go project layout хорошо все прояснило, некоторые эмпирические наблюдения подтвердили точку зрения, представленную ниже.
Я никогда не задумывался, куда нужно бросать файл go.mod. Так получилось, что в учебных проектах ее бросаешь вместе с main файлом и оно там живет и в целом хватает. Никто особо не думает объяснять на счет go.mod, что это не просто штука для версионирования, но и точка входа в проект!
Оказывается, когда go переходит в режим модуля он за точку отсчета всех путей импортов, указанных в коде (существующих локально, к примеру internal/package.go, импорты из сети это не касается) берет директорию, где лежит go.mod и отсчитывает пути импорта относительно нее.
Соответственно, когда я создавал проект и инициировал go.mod в директории main файла, а не проекта, go путался и начинал искать собственные, локальные пакеты от директории cmd/main(пример) - импорта по указанному в коде пути нет(логично), GOPATH - нет вообще, значит нужно искать в стандартной библиотеке - GOROOT - там, логично, тоже нет пакетика - в итоге выдает ошибку, что в GOROOT такого пути импорта\пакета нет. Такая ошибка сбивает, ведь она вообще про другое, а не про то, что go просто найти сам импорт в пакете проекта не может:
package ... is not in GOROOT
Поэтому решение с присвоением состояния off переменной GO111MODULE - неверное (подсмотрел его на стаковерфлоу и не подумал) и вообще выключать ее не нужно, иначе придется все писать в $GOPATH/src =) А все что нужно - это располагать go.mod в корне проекта и все импорты писать от этого корня, пример:
"projectOnGo/internal"
Такие пироги. Спасибо что прочитали крик души. Да, звездочки капитана Очевидность обмою =)))
Думаю будет полезно для начинающих, ведь особо про go.mod нигде не написано. А это штука оказалась гораздо важнее, чем могло показаться 0_0 вопросы с этой ошибкой встречаются часто и советуют совсем не то, что действительно нужно.