* fix analytic page have no back-to-dashboard button when user have no organization
* resolve conflict with main
* remove dump
* add test for back to dashboard button
* extend doc for windows installation
* remove unrelated file (fix checkout from wrong branch)
* Fix typo
Co-authored-by: rhymes <github@rhymes.dev>
* Fix typo
Co-authored-by: rhymes <github@rhymes.dev>
* Fix typo
Co-authored-by: rhymes <github@rhymes.dev>
Co-authored-by: rhymes <github@rhymes.dev>
Adding additional information to the Ruby section to help contributors who are not used to Ruby.
Also explicitly stating that the project must be cloned and forked before using rbenv install $(cat .ruby-version)
Also adding a common error Nick and I encountered with a solution.
* Removing ElasticSearch Brew instructions
If you try to install brew as directed you get this Error:
Error: Calling Installation of elasticsearch-oss from a GitHub commit URL is disabled! Use 'brew extract elasticsearch-oss' to stable tap on GitHub instead.
Brew/ElasticSearch no longer allows you to tap as we previously have suggested in the doc. Also we can no longer grab the 7.5.2 version with brew.
We have decided to remove the instructions for now until we upgrade ElasticSearch if possible.
* Adding recommended changes.
Added back line 15 per Nicks recommendation (i.e. with rbenv: `rbenv install $(cat .ruby-version)`)
Line 65 updated to 7.5 or higher for Elasticsearch per Rhymes recommendation
~Forem requires a version of Elasticsearch 7.5 or higher to be running. We recommend version 7.5.2.~
Line 110 update:
Added back in the Homebrew instructions but updated commands to `install elastic/tap/elasticsearch-oss`
* Updating wording per Molly's suggestion
Updating "to be running " to "run" and adjusting line 64 to "Forem requires Elasticsearch 7.x to run. We recommend version 7.5.2."
* Adds a new admin setting for experience levels.
This is used in the post management UI to determine the range of experience. These values fallback to the ones we currently see in DEV, Total Newbies and Senior Devs. There is also a removal of the word coding when talking about experience level, since the context for each forem instance should be implied when referencing experience.
* Cleans up experience defaults
* Fixes instance_of usage
The `.env` file shouldn't live in the `/config` directory when it is created, but
currently, the `.env_sample` file lives within `/config`. This can be confusing and
cause ENV var issues if someone duplicates `.env_sample` and renames it to `.env`,
because none of their ENV variables will get picked up, since their `.env` file will
mistakenly end up in `/config`.
This change moves `.env_sample` out of `/config`, and updates the documentation/relevant
.yml files accordingly.
* Refactor:Remove ENVied Gem in Favor of Default application.yml
* Copy sample_application.yml for Travis
* Create .env_sample file, Warn of missing ENV variables, ignore .env file
* Use dotenv For ENV variables and create Rake Task to Populate
* Update docs to copy .env_sample file
* make application config a bit more resilient
* update more documentation and only initialize dotenv in dev and test
* Update doc code snippet types and refactor rake task and app config
* remove push defaults
* Make initializers more resilient, remove unused ENV from travis
* Exit new rake task if application.yml does not exist, include dotenv in docs
* Gitignore elasticsearch installations
* Add a note to explain that ES should be installed at the root level
Remove `/elasticsearch/*` from .gitignore as well!
* Update reference to home directory in mac + windows installation guides
* update wsl installation information
* update postgreSQL installation for windows to wsl2
* update elasticsearch instructions for wsl2
* Update imagemagick installation for wsl2
* implement suggestions
- fix typo
- provide elasticsearch install commands rathen than links
- switch wsl steps to numbered
* Rename all GitHub links from thepracticaldev/dev.to to forem/forem
* Use new site name
* Rename to Forem
* Rename more dev.to to forem
* Remove unnecessary redirects
* Rename DEV to Forem
* Use Forem instead of DEV for branding
* Use Forem instead of DEV for licensing
* Use seedling instead of DEV logo
* fix node install windows docs
- add nvm installation
- switch yarn to install without node
- add `nvm install` post clone
* improve sentence formation for nvm installation
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Remove "Node.js" out of codeblocks
* improve language clarity
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Move from Alpine Linux to Fedora Linux.
This changes the base container image away from Alpine Linux to
Fedora Linux to address some musl libc issues with some of our gems.
It also moved the main file to a Containerfile and symlinks the Dockerfile
to it. This makes our container setup less Docker-centric as Linux users
most likely will be using Podman as their container runtime.
Lastly, it moves the WORKDIR from /usr/src/app to /opt/apps/devto.
The Linux FHS states that /opt is the spot for Optional application
software packages and /usr/src is for kernel source code.
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
/opt Optional application software packages
/usr/src Source code, e.g., the kernel source code with its header files.
Also, if SELinux becomes a thing in our future, moving this makes it
easier to manage contexts out of /opt rather than /usr/src.
* Adjust the Containerfile a bit to add some missing packages, make it
more generic and move env vars to the docker-compose.
* Move the Dockerfile to a symlink to the Containerfile.
We need to be able to support more than just Docker for a container
runtime. Moving everything to a Containerfile and symlinking the
Dockerfile helps users run runtimes such as Podman.
* Add in new entrypoint files and fix the app path in docker-entrypoint.sh
* Refactor the docker-compose.yml file so it doesn't build the main
application container three times in a row. We can use the same
container for web, webpacker, and sidekiq.
Also make the volume names very explicit on what their contents and add
in SELinux context support with :Z
* Fix ELASTICSEARCH_URL.
* Remove the absolute path on ip binary and add in iproute to Containerfile.
* Symlink the Dockerfile to Containerfile and add in a container-compose.yml file
for usage with podman-compose. We are waiting for this issue to get resolved
https://github.com/containers/libpod/issues/6153
and for podman-compose to mature a bit more. A user using podman-compose can use
podman-compose -f container-compose.yml
to launch the DEV container stack with Podman.
* Update the .gitignore file to reflect the new container volumes.
* Fix the entrypoint script on the Containerfile and clean up a bunch of things.
* Rework the Containerfile to prep it to run as a non-root user. We have to wait
for this issue to get fixed:
https://github.com/containers/libpod/issues/6153
for Linux users and then we can uncomment the USER line so we are running Rails
as a non-root user. :toot:
* This reworks the compose files so each task that is needed to start the app has
a correct wait command with dockerize. It also adds in containers for doing
yarn and bundle things for development. Since we mount the code directory inside
the container we lose our pre-containerized gems and node_modules.
This means users can run:
Linux
podman-compose -f container-compose.yml up
Mac
docker-compose up
and it should correctly build the app stack with containers!
* Clean up old container related things.
* Add in some container pre-reqs and my name to the "Core team" section! :toot:
* Adjust the seed and sidekiq compose entries so they do not use the web entrypoint
and set the REDIS_URL and REDIS_SESSIONS_URL env vars for seed.
Add in some echos to the entrypoint.sh.
Also set docker-compose to use :delegated on mount points to speed things up.
https://docs.docker.com/storage/bind-mounts/#configure-mount-consistency-for-macos
* Just call yarn install --dev on the yarn container.
* Update documentation to support Docker and Podman as Container Engines and
move the page from docker to containers to reflect the fact not all users run
their containers via Docker.
There are dozens of us... DOZENS!
* Set --local on bundle config so it just impacts this Ruby app.
* Renamed bin/docker-setup to bin/container-setup to reflect the fact that that
we can use Podman as a container engine. I also refactored it so it does some
basic pre-flight checks for docker and docker-compose or podman and
podman-compose to make sure users have a container engine installed.
* Set cache_all_platforms true for bundler.
* Bump docker-compose dockerize -timeout to 45min for slower macOS hardware.
* Move to the consolidated app_initializer:setup rake task for bootstrapping the
app.
* Update docs/installation/readme.md
* Upgrade to Ruby 2.7.0
* Upgrade Travis's Ruby as well
* Fix conflict
* Silence all Ruby 2.7 deprecation warnings in dev mode
* Silence dev and test unless CI
* Try out parallel Travis builds
* Add more Bundler options
* Appease the spec gods
I don't think we actually need Timecop.freeze in this spec
* Try inlining factories
* Make sure the time has actually changed
* Add CodeClimate coverage for parallel build
* Explicitly list jobs, don't rely on matrix expansion
* Merge master and move storybook to after_script
* Add missing environment variable
* Remove old cc-test-reporter config
* Move yarn build-storybook back to script, remove conditional coverage upload
* Update yarn constraint and Docker docs
Co-authored-by: rhymes <rhymesete@gmail.com>