diff --git a/.vuepress/config.js b/.vuepress/config.js index 71c60fd..c043411 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -80,17 +80,54 @@ module.exports = { '/lando-101/lando-tooling.md', ], }, + { + text: 'Guides', + collapsible: true, + children: [ + '/guides/access-by-other-devices.md', + '/guides/db-export.md', + '/guides/db-import.md', + '/guides/external-access.md', + '/guides/how-do-i-configure-a-lando-recipe.md', + '/guides/how-do-i-set-the-timezone-of-a-lando-service.md', + '/guides/lando-info.md', + '/guides/lando-phpstorm.md', + '/guides/lando-with-vscode.md', + '/guides/offline-dev.md', + '/guides/overriding-a-service-version.md', + '/guides/setup-lando-on-windows-with-wsl-2.md', + '/guides/updating-to-rc2.md', + ], + }, + { + text: 'Troubleshooting', + collapsible: true, + children: [ + '/help/logs.md', + '/help/wkbox.md', + '/help/updating.md', + ], + }, + { + text: 'Known Issues', + collapsible: true, + children: [ + '/help/dns-rebind.md', + '/help/win-file-upload.md', + '/help/file-sync.md', + '/help/win-also-vb.md', + '/help/proxy', + '/help/switching-dbs.md', + ], + }, { text: 'Contributing', collapsible: true, children: [ - '/contrib', + '/contrib/index.md', + '/contrib/coder.md', '/contrib/evangelist.md', '/contrib/sponsoring.md', - '/lando-101/lando-config.md', - '/lando-101/lando-services.md', - '/lando-101/lando-proxy.md', - '/lando-101/lando-tooling.md', ], }, ], diff --git a/.vuepress/config.old.js b/.vuepress/config.old.js deleted file mode 100644 index cbbcfaa..0000000 --- a/.vuepress/config.old.js +++ /dev/null @@ -1,328 +0,0 @@ - -module.exports = { - title: 'Lando', - description: 'The liberating local development tool for all your projects.', - head: [ - ['link', {rel: 'icon', href: '/favicon.ico'}], - ['link', {rel: 'stylesheet', href: '/styles/overrides.css'}], - ['link', {rel: 'stylesheet', href: '//fonts.googleapis.com/css?family=Poppins:700|Source+Sans+Pro&display=swap'}], - ['script', {src: '//js.hs-scripts.com/6478338.js'}], - ], - plugins: { - '@vuepress/google-analytics': { - ga: 'UA-74237404-5', - }, - 'autometa': { - site: { - name: 'Lando', - twitter: 'devwithlando', - }, - canonical_base: 'https://docs.lando.dev', - image: 'https://lando.dev/images/logo-pink-medium.png', - }, - 'canonical': { - baseURL: 'https://docs.lando.dev', - }, - 'feed': { - canonical_base: 'https://docs.lando.dev', - feed_options: { - favicon: 'https://lando.dev/favicon.ico', - image: 'https://lando.dev/images/logo-pink-small.png', - }, - posts_directories: [ - '/guides/', - ], - count: 100, - }, - 'robots': { - host: 'https://docs.lando.dev', - sitemap: '/sitemap.xml', - }, - 'sitemap': { - hostname: 'https://docs.lando.dev', - exclude: ['/404.html'], - }, - }, - themeConfig: { - algolia: { - apiKey: '15e332850128e9ec96929f44c62f6c88', - indexName: 'lando', - // uncomment the below to make styling inspection easier - // debug: true, - }, - docsDir: 'docs-3.x', - docsBranch: 'main', - logo: '/images/logo-pink-small.png', - editLinks: true, - editLinkText: 'Is this doc out of date? Suggest a change!', - lastUpdated: 'Last Updated', - nav: [ - {text: 'Getting Started', link: '/basics/'}, - {text: 'Config', link: '/config/lando.md'}, - {text: 'Guides', link: '/guides/lando-101/lando-overview'}, - {text: 'Help and Support', link: '/help/logs/'}, - {text: 'Contributing', link: '/contrib/contributing/'}, - {text: 'Blog', link: 'https://blog.lando.dev'}, - {text: 'Events & Meetups', link: 'https://events.lando.dev'}, - ], - repo: 'lando/docs', - sidebar: { - '/basics/': [ - { - title: 'Getting Started', - collapsable: false, - children: [ - '', - 'basics', - 'installation', - 'first-app', - 'updating', - 'uninstalling', - ], - }, - { - title: 'Usage', - collapsable: false, - children: [ - 'usage', - 'config', - 'destroy', - 'init', - 'info', - 'list', - 'logs', - 'poweroff', - 'rebuild', - 'restart', - 'share', - 'ssh', - 'start', - 'stop', - 'version', - ], - }, - ], - '/config/': [ - { - title: 'Core Config', - collapsable: false, - children: [ - 'lando', - 'recipes', - 'services', - 'tooling', - 'proxy', - 'env', - 'events', - 'experimental', - 'networking', - 'performance', - 'plugins', - 'releases', - 'ssh', - 'security', - 'files', - 'global', - ], - }, - { - title: 'Recipes', - collapsable: false, - children: [ - 'acquia', - 'backdrop', - 'drupal6', - 'drupal7', - 'drupal8', - 'drupal9', - 'drupal10', - 'joomla', - 'lagoon', - 'laravel', - 'lamp', - 'lemp', - 'mean', - 'pantheon', - 'platformsh', - 'symfony', - 'wordpress', - ], - }, - { - title: 'Services', - collapsable: false, - children: [ - 'apache', - 'compose', - 'dotnet', - 'elasticsearch', - 'go', - 'mailhog', - 'mariadb', - 'memcached', - 'mongo', - 'mssql', - 'mysql', - 'nginx', - 'node', - 'php', - 'phpmyadmin', - 'postgres', - 'python', - 'redis', - 'ruby', - 'solr', - 'tomcat', - 'varnish', - ], - }, - ], - '/guides/': JSON.parse(fs.readFileSync(require.resolve('./guides.json'))), - '/help/': [ - { - title: 'Troubleshooting', - collapsable: false, - children: [ - 'logs', - 'wkbox', - 'updating', - ], - }, - { - title: 'Known Issues', - collapsable: false, - children: [ - 'dns-rebind', - 'win-file-upload', - 'file-sync', - 'win-also-vb', - 'proxy', - 'switching-dbs', - ], - }, - { - title: 'Support', - collapsable: false, - children: [ - ['https://lando.dev/contact', 'Dedicated Support'], - ['https://github.com/lando/lando/issues', 'GitHub issue queue'], - ['https://launchpass.com/devwithlando', 'Slack - Official Lando'], - ['https://www.drupal.org/slack', 'Slack - Drupal #lando channel'], - ['https://www.youtube.com/channel/UCl_QBNuGJNoo7yH-n18K7Kg', 'YouTube Tutorials'], - ['https://github.com/lando/cli/tree/main/examples', 'Code examples'], - ['security', 'Security Issues'], - ], - }, - { - title: 'Data', - collapsable: false, - children: [ - ['data', 'Privacy Policy for Humans'], - ], - }, - { - title: 'Changelog', - collapsable: false, - children: [ - '2021-changelog', - '2020-changelog', - '2019-changelog', - '2018-changelog', - '2017-changelog', - ], - }, - ], - '/contrib/': [ - { - title: 'Getting Involved', - collapsable: false, - children: [ - 'contributing', - 'comms', - 'activate', - 'first', - 'support', - ], - }, - { - title: 'Governance', - collapsable: false, - children: [ - 'gov', - 'vision', - ['team', 'Current Team'], - 'roles', - ['opensource', 'Resources'], - ['https://docs.google.com/document/d/1aHcpAYIC50X82ul0_zZpvkprl97ZxsM-LXjq-zUK29Q/edit?usp=sharing', 'Minutes'], - 'roadmap', - ], - }, - { - title: 'Evangelizing', - collapsable: false, - children: [ - 'evangelist-intro', - 'evangelist-present', - 'evangelist-events', - 'evangelist-social', - 'evangelist-promote', - 'talking-points', - ], - }, - { - title: 'Triaging Issues', - collapsable: false, - children: [ - 'triage-getting-started', - ], - }, - { - title: 'Writing Guides', - collapsable: false, - children: [ - 'guides-intro', - 'guides-add', - 'guides-remove', - 'guides-promote', - 'guides-advanced', - ], - }, - { - title: 'Contributing Code', - collapsable: false, - children: [ - 'contrib-intro', - 'contrib-structure', - 'contrib-plugins', - 'contrib-testing', - 'contrib-building', - 'contrib-shipping', - 'contrib-docs', - ['https://github.com/lando/sites', 'Events'], - ['https://github.com/lando/metrics', 'Metrics'], - ['https://github.com/lando/sites', 'Website'], - ], - }, - { - title: 'Sponsoring', - collapsable: false, - children: [ - 'sponsor-intro', - 'sponsor-upsell', - 'sponsor-faq', - ], - }, - { - title: 'Administering', - collapsable: false, - children: [ - 'admin-intro', - 'admin-onboarding', - 'admin-sponsors', - 'admin-timeline', - ], - }, - ], - }, - }, -}; diff --git a/contrib/contrib-plugins.md b/contrib/coder.md similarity index 73% rename from contrib/contrib-plugins.md rename to contrib/coder.md index 2192254..e363a4f 100644 --- a/contrib/contrib-plugins.md +++ b/contrib/coder.md @@ -1,8 +1,90 @@ --- -description: Learn about Lando's amazing plugin structure. +description: Learn about how to get started contributing code to Lando. --- -# Plugins +# Coding + +This section is designed for people who want to contribute `code things` to Lando. Specifically, that might mean working on some of the following: + +* Lando itself and its plugins +* Lando's DevOps pipeline e.g. build, test and deploy +* Lando's tests and testing infrastructure +* Lando's documentation and Vuepress documentation site +* Lando's express API +* Lando's marketing website +* Lando's metrics server +* Lando's Vuepress marketing site +* Lando's Vuepress events listing +* Lando's Vuepress blog + +[[toc]] + +## Choosing a project + +Lando has a distributed model and is powered by over [50 repos](https://github.com/lando) so the first step is to find a repo you are interested in and check out the contribution guidelines there. + +## Good First Issues + +Once you are set up and ready to contribute, a good place to start is with issues tagged as [good first issue](https://github.com/lando/lando/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). Peruse the list and see if one or more of those issues is a good fit for you. + +If you are having issues with any of the above or need some guidance from one of our guide pros, make sure you [join our Slack org](https://launchpass.com/devwithlando) and check out the **#community** and/or **#contributors** channels. + +## Triaging issues + +Welcome intrepid Lando contributor! Thank you for joining the alliance and jumping on the front lines to triage issues! + +Issue triage is incredibly important to the project. Good handling of issue reports from our users leads to folks sticking around and getting all the benefits that Lando has to offer, becoming contributors themselves, and improving the overall health and sustainability of the project. + +When a user files an issue, they're probably either filled with hope and energy about improving the project, or frustration caused by their expectations not lining up with their experience. Both of these energies are valuable when channeled correctly, and damaging when mismanaged. + +Behind every issue is a person taking the time to fill out the report when they could have simply remained silent. They could have left their good ideas on the shelf, thrown Lando in the trash, or needlessly struggled in silence. + +With all this in mind, treat issue reporters with respect, assume good will, and ask for clarification when needed. The extra energy you put in here to show kindness and compassion can be the difference between steering the project towards growth and sustainability or stagnation and burnout. + +Now that you're equipped with the laser sword of empathy and the armor of respect, this is the standard procedure you should go through to triage an issue. + +### Requirements + +1. A Github account +2. [Install Lando](/basics/installation.html) (So you can reproduce issues) + +### Classify the Issue + +The first step in triaging an issue is to decide if the issue is a _bug report_, _feature request_, _documentation request_, or a _guide request_. + +Our issue templates will hopefully help to pre-categorize issues for us, but use your discretion to recategorize issues that may have come in under the wrong label. It's not uncommon for a user to assume that their issue is a bug when it is really a need to improve documentation, or even for a user to assume they've done something wrong when they've actually just discovered a bug for us! + +Review the issue and recategorize as necessary. + +### Bug Reports + +If the user is reporting that something isn't working as documented, or something generally appears to be broken, it should be classified as a bug report. + +The first thing you want to do is to check the report against our [bug reporting template](https://github.com/lando/lando/blob/master/.github/ISSUE_TEMPLATE/bug_report.md). + +The most important thing we need for a good bug report are reliable steps to reproduce the issue. If the user has included steps to replicate, you should first try to replicate the bug. + +If you do nothing else, this is the most valuable thing you can do for Lando maintainers. It can sometimes be time consuming, but making sure we can replicate a bug saves massive amounts of time for the intrepid developer who attempts to fix the bug. It helps us to write clear functional tests and spend less time fixing the bug. + +Once steps to reproduce have been ironed out, the issue should be tagged as `triaged`. + +If you can't reproduce the issue, tag it with `can not replicate` and let the user know that you are unable to replicate the issue. If you can think of additional information that might be helpful, request it in your comment. Non-reproducable issues will remain unscheduled until they are closed by a maintainer or stalebot. + +### Feature Requests + +If the user is asking for something that Lando currently doesn't do, this is a feature request. If the user wants Lando to add a new command to our API, a new service, recipe, tooling command, or support a new operating system we don't currently support, this is a feature request. + +Refer to the [feature request template](https://github.com/lando/lando/blob/master/.github/ISSUE_TEMPLATE/feature_request.md) to see what kind of data we want from the user. If their report is missing one of these areas, it might be helpful to ask them questions about the areas that need clarification. + +New feature requests will be regularly reviewed by the maintainers and scheduled, iceboxed, or closed as appropriate, as long as the request is something you can understand, it can be reviewed by a maintainer at a later date. If it seems unclear, it would be helpful to ask clarifying questions from the requester so that the issue is fully fleshed out when a maintainer is able to review it. + +### Documentation Requests + +Documentation requests should be tagged with `documentation` and checked against the [documentation issue template](https://github.com/lando/lando/blob/master/.github/ISSUE_TEMPLATE/documentation.md). + +If a reference page isn't included, try to find the right page in the documentation that addresses the topic at hand and add a link to the page in the issue. If there is no suitable page, a new one will need to be created. + +## Writing Plugins Lando has an advanced plugin system that allows developers to add and extend Lando's core functionality. A few examples of things you can do with plugins are shown below: @@ -19,7 +101,7 @@ In fact, almost all of Lando's core functionality is provided via plugins. This [[toc]] -## Plugin Loading +### Plugin Loading Lando will search in the `plugins` directory for any path listed in `lando.config.pluginDirs` and automatically load in any plugins that it finds. By default, these directories are the Lando source directory and `~/.lando` but note that they are configurable via the Lando [global config](./../config/config.md). In order for Lando to successfully identify and automatically load your plugin, you need to have a directory named after your plugin, e.g. `my-plugin`, in one of the directories mentioned above and it needs to include an `index.js`. @@ -31,7 +113,7 @@ If there are multiple occurrences of the same-named plugin, Lando will use the l As of `3.0.0-rc.2`, Lando will no longer look for plugins in your app's root directory by default. We intend to eventually provide better scaffolding around grabbing and loading plugins directly from your Landofile but for now this is left to the user. ::: -## Plugin Anatomy +### Plugin Anatomy At the bare minimum, your plugin needs to have the following structure to be recognized and autoloaded by Lando. @@ -59,7 +141,7 @@ However, Lando will also look for other folders and files and automatically load Let's go into more depth about each special file below: -### index.js +#### index.js This file is required to exist in every Lando plugin, even if it doesn't do anything. **If you do not have this file, then your plugin will not be detected and loaded.** @@ -89,7 +171,7 @@ module.exports = (app, lando) => { }; ``` -### app.js +#### app.js `app.js` will get loaded when a Lando app is initialized, e.g. `app.init()` is invoked. Generally, you will use this file to hook into the app's event layer and to modify the app object itself. @@ -123,11 +205,11 @@ module.exports = (app, lando) => { }; ``` -### scripts +#### scripts Nothing too fancy here. Drop a bunch of scripts ending in `.sh`, e.g. `myscript.sh`, into this directory and they will get mounted at `/helpers` in every Lando service. -### tasks +#### tasks Lando will try to load any `.js` file dropped into this directory as a "task" which in the CLI is manifested as a command. Generally, you will want to name the file the same as the task that should be invoked, e.g. `env.js` will give you a `lando env` command. @@ -179,7 +261,7 @@ More details about each key are listed as follows: **run** - This is the function that will run when the task is invoked. Note that you have access to both `options` and `lando` here. -### compose, types, services +#### compose, types, services Lando services can now be automatically detected and loaded using our new `builder` interface and system. All you need for this to happen is have a structure similar to below: @@ -266,7 +348,7 @@ Some more details about each key are shown below: **builder** - This is **THE MAIN EVENT**, e.g. the actual `class` definition for your builder. It is a function that gets whatever you defined above in `config` and should only contain a `constructor`. `id` and `options` generally come from the user's Landofile. The contents of the `constructor` are up to you but it ultimately needs to call `super` with arguments that make sense to the `parent`. -### recipes +#### recipes As in the section above, `recipes` implements a similar autoload structure with one exception: you can specify an optional `init.js` file. @@ -360,7 +442,7 @@ module.exports = { **build** - This is a function that will run after your source steps are executed and allows you to make any last changes before a Landofile is output. Generally, this is used to augment and modify the Lando config. -### sources +#### sources Lando will try to load any `.js` file dropped into this directory as a "source" which is a place Lando can get code from when running `lando init`. @@ -414,6 +496,6 @@ Some more details about each key are shown below: **build** - This is what will allow your new source to actually **DO STUFF**. It's an array of command metadata. If you specify a `cmd`, it will run inside of a special `init` service. If you specify a `func`, it will simply invoke that function. -## Plugin Examples +### Plugin Examples Check out some of our [core plugins](https://github.com/lando/cli/tree/main/plugins) for motivation in creating your own. diff --git a/contrib/contrib-api.md b/contrib/contrib-api.md deleted file mode 100644 index 80083d7..0000000 --- a/contrib/contrib-api.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: Learn how to contribute to the Lando express API. -metaTitle: Working on the Lando express API | Lando ---- - -# API - -This assumes you've gone through all the steps in our [Getting Involved](contributing) docs and are familiar with contributing. - -### Using Lando (recommended) - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Get everything installed and launch core services -lando.dev start - -# Open the api -open https://api.lndo.site -``` - -### Using Yarn - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Use yarn to launch the api -yarn dev:api - -# Open the api -open http://localhost -``` diff --git a/contrib/contrib-blog.md b/contrib/contrib-blog.md deleted file mode 100644 index 0d5a262..0000000 --- a/contrib/contrib-blog.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: Learn how to contribute to the Lando vuepress blog. -metaTitle: Working on the Lando vuepress blog | Lando ---- - -# Blog - -This assumes you've gone through all the steps in our [Getting Involved](contributing) docs and are familiar with contributing. - -### Using Lando (recommended) - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Get everything installed and launch core services -lando.dev start - -# Start up the blog -lando.dev blog - -# Open the blog -open https://blog.lndo.site -``` - -### Using Yarn - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Use yarn to launch the blog -yarn dev:blog - -# Open the blog -open http://localhost:8007 -``` diff --git a/contrib/contrib-building.md b/contrib/contrib-building.md deleted file mode 100644 index ce7fe9a..0000000 --- a/contrib/contrib-building.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -description: Learn how to build and package Lando from source. ---- - -# Building - -You can easily build Lando from source with our helpful `yarn` scripts. Make sure you've cloned the [correct repository](https://github.com/lando/cli)! - -::: warning Cross compiling is not currently supported! -Due to an upstream restriction imposed on us by [pkg](https://github.com/zeit/pkg), we cannot currently cross compile. -::: - -```bash -# Build the Lando CLI binary -yarn run build:cli -# Navigate to the prebuilt binaries -cd dist/@lando -``` diff --git a/contrib/contrib-docs.md b/contrib/contrib-docs.md deleted file mode 100644 index 5260217..0000000 --- a/contrib/contrib-docs.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: Learn how to contribute to the Lando vuepress documentation. -metaTitle: Working on the Lando vuepress documentation | Lando ---- - -# Documentation - -This assumes you've gone through all the steps in our [Getting Involved](contributing) docs and are familiar with contributing. - -### Using Lando (recommended) - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Get everything installed and launch core services -lando.dev start - -# Start up the docs -lando.dev docs - -# Open the docs -open https://docs.lndo.site -``` - -### Using Yarn - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Use yarn to launch the docs -yarn dev:docs - -# Open the docs -open http://localhost:8008 -``` diff --git a/contrib/contrib-intro.md b/contrib/contrib-intro.md deleted file mode 100644 index e0759e9..0000000 --- a/contrib/contrib-intro.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -description: Learn about how to get started contributing code to Lando. -metaTitle: Getting Started Writing Code for Lando | Lando ---- - -# Getting Started - -This section is designed for people who want to contribute `code things` to Lando. Specifically, that might mean working on some of the following: - -* Lando itself and its plugins -* Lando's DevOps pipeline e.g. build, test and deploy -* Lando's tests and testing infrastructure -* Lando's documentation and Vuepress documentation site -* Lando's express API -* Lando's marketing website -* Lando's metrics server -* Lando's Vuepress marketing site -* Lando's Vuepress events listing -* Lando's Vuepress blog - -## What do I need to get started? - -You will need to go through all the steps in our [Getting Involved](contributing.md) section if you have not done so already. This will get you rolling for contribution. All the steps from the aforementioned section for completeness are shown below: - -1. [Join](./comms.md) -2. [Install Lando from source and activate secret toggle](./activate.md) -3. [Add yourself as a contributor](./first.md) - -## Good First Issues - -Once you are set up and ready to contribute, a good place to start is with issues tagged as [good first issue](https://github.com/lando/lando/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). Peruse the list and see if one or more of those issues is a good fit for you. - -If you are having issues with any of the above or need some guidance from one of our guide pros, make sure you [join our Slack org](https://launchpass.com/devwithlando) and check out the **#community** and/or **#contributors** channels. diff --git a/contrib/contrib-metrics.md b/contrib/contrib-metrics.md deleted file mode 100644 index d6986f5..0000000 --- a/contrib/contrib-metrics.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: Learn how to contribute to the Lando metrics express server. -metaTitle: Working on the Lando metrics express server | Lando ---- - -# Metrics Server - -This assumes you've gone through all the steps in our [Getting Involved](contributing) docs and are familiar with contributing. - -### Using Lando (recommended) - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Get everything installed and launch core services -lando.dev start - -# Open the metrics endpoint -open https://metrics.lndo.site -``` - -### Using Yarn - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Use yarn to launch the metrics -yarn dev:metrics - -# Open the metrics -open http://localhost -``` diff --git a/contrib/contrib-shipping.md b/contrib/contrib-shipping.md deleted file mode 100644 index 1f356b7..0000000 --- a/contrib/contrib-shipping.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -description: Learn how to ship Lando releases if you are a maintainer. ---- - -# Shipping - -If you are a maintainer of Lando, you can kick off an official release using our handy `grunt` tasks. **THIS NEEDS TO BE DONE FROM THE MASTER BRANCH!** - -```bash -# Interactively do the release -yarn release - -# Get help about other release options -yarn release --help - -Usage: bump [options] - -# Options: -# -V, --version output the version number -# --major Increase major version -# --minor Increase minor version -# --patch Increase patch version -# --premajor Increase major version, pre-release -# --preminor Increase preminor version, pre-release -# --prepatch Increase prepatch version, pre-release -# --prerelease Increase pre-release version -# --prompt Prompt for type of bump (patch, minor, major, pre-major, pre-release, etc.) -# --preid The identifier for pre-release versions (default is "beta") -# --commit [message] Commit changed files to Git (default message is "release vX.X.X") -# --tag Tag the commit in Git -# --push Push the Git commit -# --all Commit/tag/push ALL pending files, not just the ones changed by bump -# --grep Files and/or globs to do a text-replace of the old version number with the new one -# --lock Also update the package-lock.json -# -h, --help output usage information -# Examples: -# -# $ bump --patch -# $ bump --major --tag -# $ bump --patch --tag --all --grep README.md -# $ bump --prompt --tag --push --all -``` diff --git a/contrib/contrib-structure.md b/contrib/contrib-structure.md deleted file mode 100644 index a5f5f28..0000000 --- a/contrib/contrib-structure.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: Learn about Lando's project and directory structure. ---- - -# Project Structure - -A general breakdown of where things live inside the Lando repo is shown below: - -```bash -./ -|-- .circleci CircleCi config to run our generated functional tests -|-- .github Helpful GitHub templates -|-- .platform Platform.sh config to run our docs site -|-- api Our express API -|-- bin CLI entrypoint script -|-- blog Vuepress blog and its content -|-- docs Vuepress docs site and its content -|-- events Vuepress events listing and its content -|-- examples Examples user in this documentation and to generate functional tests -|-- installer Installer packages and helpers -|-- lib Core libraries -|-- metrics Express metrics server -|-- plugins Core plugins -|-- scripts Scripts to help with build, test and deploy automation -|-- test Unit and functional tests -|-- website Vuepress marketing site and its content -|-- .lando.yml The Landofile for Lando -|-- .travis.yml Travis CI config for POSIX unit tests, build and deploy -|-- config.yml Default Lando global config -|-- package.json Lando node dependencies -``` - -Some notes about the structure are below: - -* Code that is easily unit testable and does not require the `lando` object should live in `lib`. -* Code that requires the `lando` object should be expressed in `plugins`. -* Code that extends the core `lando` object will *almost always* be in `plugins` and not `lib`. diff --git a/contrib/contrib-testing.md b/contrib/contrib-testing.md deleted file mode 100644 index ff1ca4f..0000000 --- a/contrib/contrib-testing.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -description: Learn about how to contribute to Lando by testing from source. ---- - -# Testing - -You should be able to use this guide as follows: - -1. Check code linting and style -2. Run and write unit tests -3. Run and write functional tests -4. Learn how to write tests - -## Code linting and standards - -Lando implements some basic linting and a slightly less annoying version of the `google` `es6` code standards to make sure things remain consistent between developers and to prevent syntax errors. You can easily check whether your code matches these standards using grunt. - -```bash -# For lando proper -yarn lint - -# For the docs and website -yarn lint:sites -``` - -## Unit tests - -The unit tests use [Mocha](https://mochajs.org/) and [Chai](http://chaijs.com/). - -In order to familiarize yourself with where tests should live for both core and plugins, please consult the [structure guide](./structure.md). Lando's core libraries currently have decent coverage so you can [scope them out](https://github.com/lando/lando/tree/master/test/unit) for help writing tests. - -To run the unit test suite, execute the following: - -```bash -yarn test:unit -``` - -## Functional tests - -Lando uses it's own functional testing framework called [leia](https://github.com/lando/leia). Leia helps us ensure that Lando is the real hero we all know him to be. - -Leia combines `mocha` as the test runner, `chai` for assertions and `command-line-test` to make the process of executing commands simpler. Tests are written as specially structured `README.md` files that live in the `examples` folder and contain code blocks. When the suite runs, these are scanned, parsed and outputted as mocha tests. - -::: danger Pretty sure these will not run on Windows yet!!! -SORRY WINDOZE USERS! -:::: - -To generate tests from the `examples` repo and then run the functional test suite, execute the following: - -```bash -yarn generate:tests && yarn test:functional -``` - -**NOTE:** This may take awhile to complete locally and could destroy any apps you may already have running. It's best to use it in a continuous integration environment. - -To better understand how these `markdown` files need to be parsed, check out the [Leia docs](https://github.com/lando/leia). Lando will specifically look for headers to determine which kinds of tests your code block is for and start with the following: - -| Type | Headers | -| -- | -- | -- | -| Start | `Starting`| -| Test | `Testing` | -| Cleanup | `Cleaning` | - -### Running Functional Tests One at a Time - -Running the Lando functional tests can take a lot of system resources and in development it can be convenient to run just the test you care about or run several tests one at a time. - -After editing or making a new test in one of the `example/*/README.md` files, you first need to regenerate the tests as follows: - -```bash -yarn generate:tests -``` - -This will use `leia` to convert the `README.md` test steps into mocha functional tests in the `tests/` directory. - -To run the tests, use `mocha` like below: - -```bash -yarn mocha --timeout 900000 test/php-example.func.js -``` - -Replace `php-example.func.js` with the file you are interested in testing. - - -Some caveats and general guidelines about when and how to write functional tests are shown below: - -### So what's the catch? - -1. The suite will run against the `lando` it finds in your PATH so you need to make sure that `lando` is running from source -2. For test commands to pass, they must return a 0 status code e.g. not have any errors -3. Additional quotes inside of a `lando ssh -c "STUFF"` are not handled very well right now - -### So when does your code need to include functional tests? - -When you are fixing a bug, you should first write a test to confirm the bug exists repeatably. Then you can fix the bug and the test should pass. Because this framework is essentially just running a bunch of Lando and/or Docker commands, it should be pretty easy to write out steps to replicate using the framework. - -### When shouldn't you bother with a new functional test? - -1. Your PR is docs only -2. Your PR is outside the critical path (e.g. writing tests or altering our build pipeline) -3. Your code alters Lando in a way that doesn't alter the 'contract' with the user. Internal refactoring should add or alter appropriate unit tests, but if the net affect is not visible to an end user, it doesn't need a functional test. - -## References - -In addition to the tips above, looking at existing tests will give you a good idea of how to write your own, but if you're looking for more tips, we recommend the following: - -* [Leia](https://github.com/lando/leia) -* [Mocha documentation](http://mochajs.org/) -* [Chai documentation](http://chaijs.com/) -* [Chai-As-Promised documentation](http://chaijs.com/plugins/chai-as-promised/) -* [Command Line Test](https://github.com/macacajs/command-line-test) -* [Lando core unit tests](https://github.com/lando/lando/tree/master/test) - diff --git a/contrib/contrib-website.md b/contrib/contrib-website.md deleted file mode 100644 index 51e6158..0000000 --- a/contrib/contrib-website.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: Learn how to contribute to the Lando vuepress marketing site. -metaTitle: Working on the Lando vuepress marketing site | Lando ---- - -# Website - -This assumes you've gone through all the steps in our [Getting Involved](contributing) docs and are familiar with contributing. - -### Using Lando (recommended) - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Get everything installed and launch core services -lando.dev start - -# Start up the site -lando.dev site - -# Open the site -open https:/ site.lndo.site -``` - -### Using Yarn - -```bash -# Go into the lando source directory -cd /path/to/lando/source - -# Use yarn to launch the site -yarn dev site - -# Open the site -open http://localhost:8009 -``` diff --git a/contrib/gov.md b/contrib/gov.md deleted file mode 100644 index c123306..0000000 --- a/contrib/gov.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -description: Learn about the Lando governance model. ---- - -# Model - -Lando is led by a [benevolent dictator](./roles.md#benevolent-dictator) and committee of [maintainers](./roles.md#maintainers) and managed by the community. - -That is, the community actively contributes to the day-to-day maintenance of the project, but the general strategic line is drawn by the maintainers. In case of disagreement, the benevolent dictator has the last word. It is the benevolent dictator’s job to resolve disputes within the community and to ensure that the project is able to progress in a coordinated way. - -In turn, it is the community’s job to guide the decisions of the benevolent dictator through active engagement and contribution. - -Governance of the project is simple and straightforward as listed below: - - * [Maintainers](./roles.md#maintainers) make consensus driven decisions about the project. - * The [Benevolent Dictator](./roles.md#benevolent-dictator) has the final say on all decisions but generally only exercises this power on an as-needed basis; most usually when the maintainers cannot reach consensus. diff --git a/contrib/index.md b/contrib/index.md index 58a180e..0f151ae 100644 --- a/contrib/index.md +++ b/contrib/index.md @@ -12,12 +12,12 @@ If you are interested in helping out with the Lando project, then you've come to We are looking for people to help out in any of the capacities as follows: -::: half EVANGELIST -Present, train or speak about Lando at various meetups, camps and conferences and generally spread the good word across the galaxy +::: half CODER +Work on making and supporting Lando by touching code, docs, issues, DevOps or helping out in our Slack community channel ::: -::: half CONTRIBUTOR -Work on making and supporting Lando by touching code, docs, issues, DevOps or helping out in our Slack community channel +::: half EVANGELIST +Present, train or speak about Lando at various meetups, camps and conferences and generally spread the good word across the galaxy ::: ::: half SPONSOR @@ -30,7 +30,6 @@ Take ownership over one of our repos **If any of the above sound up your alley, then join us on the comms below and start engaging!** - ## GitHub GitHub serves as the mechanism for all Lando code, issue reporting/tracking and project management. diff --git a/contrib/opensource.md b/contrib/opensource.md deleted file mode 100644 index addf2a7..0000000 --- a/contrib/opensource.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: Lando open source contribution resources. ---- - -# Governance Resources - -Much of the documentation contained in this section was inspired by (or directly lifted from) the following resources. As such it is worth reviewing them to get a more in depth picture of the intended governance model below: - - * [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) - * [Best Practices for Maintainers](https://opensource.guide/best-practices/) - * [Leadership and Governance](https://opensource.guide/leadership-and-governance/) - * [Benevolent Dictator Governance Model](http://oss-watch.ac.uk/resources/benevolentdictatorgovernancemodel) - * [What Makes a Good Benevolent Dictator](https://producingoss.com/html-chunk/benevolent-dictator.html) diff --git a/contrib/roles.md b/contrib/roles.md deleted file mode 100644 index 6e8766d..0000000 --- a/contrib/roles.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -description: Learn about Lando's open source governance roles and responsibilities for maintainers, contributors, committers and security team things. ---- - -# Roles and Responsibilities - -## Benevolent Dictator - -Typically, the benevolent dictator, or project lead, is self-appointed. However, because the community always has the ability to fork, this person is fully answerable to the community. The project lead's role is a difficult one: they ultimately set the [strategic vision](./vision.md) of the project and communicate these clearly to the project maintainers and community at large. They also have to understand the community as a whole and strive to satisfy as many conflicting needs as possible, while ensuring that the project survives in the long term. - -In many ways, the role of the benevolent dictator is less about dictatorship and more about diplomacy. The key is to ensure that, as the project expands, the right people are given influence over it and the community rallies behind the vision of the project lead. The lead's job is then to ensure that maintainers and committers (see below) make the right decisions on behalf of the project. Generally speaking, as long as the maintainers and committers are aligned with the project's strategy, the project lead will allow them to proceed as they desire. - -Check out [this read](https://producingoss.com/html-chunk/benevolent-dictator.html) on some of the qualifications we expect in a good BD. - -## Maintainers - -Maintainers are committers who also make decisions for the overall direction of the project including but not limited to the following: - - * Helping set the [strategic vision](./vision.md) - * Assigning or removing roles and responsibilities - * Maintaining these contribution docs - * Planning sprints and milestones - * Determining release dates and cycles - * Delegating to committers when and where appropriate - -Decisions are made by consensus with the Benevolent Dictator serving as final authority when consensus cannot be reached. Ideally, all decision making for the project is made by the maintainers and by consensus. - -## Committers - -Committers are contributors who have made several valuable contributions to the project and are now relied upon to both write code directly to the repository and screen the contributions of others. In many cases, they are programmers but it is also possible that they contribute in a different role. Typically, a committer will focus on a specific aspect of the project and will bring a level of expertise and understanding that earns them the respect of the community and the project maintainers. The role of committer is an official one and it is generally a position that influential members of the community will find themselves in as the project maintainers look to them for guidance and support. Some more popular areas of focus for committers are as follows: - - * Documentation - * DevOps (Test, Build, Deploy) - * Infrastructure - * Specific Lando Plugins, Recipes or Services - * Core Lando Code - * Writing Tests - -Committers have no authority over the overall direction of the project. However, they do have the ear of the project maintainers. It is a committer's job to ensure that the maintainers are aware of the community's needs and collective objectives and to help develop or elicit appropriate contributions to the project. Often, committers are given informal control over their specific areas of responsibility and are assigned rights to directly modify certain areas of the source code. That is, although committers do not have explicit decision-making authority, they will often find that their actions are synonymous with the decisions made by the maintainers. - -Committers that acquire more project breadth and high level insight around the projects vision may find that the project maintainers start relying on them more and more. When this begins to happen, they gradually adopt the role of maintainer, as described above. - -## Contributors - -Contributors are community members who either have no desire to become committers, or have not yet been given the opportunity by the project maintainers. They make valuable contributions, such as those outlined in the list below, but generally do not have the authority to make direct changes to the project code. Contributors engage with the project primarily through the [#contributors](https://launchpass.com/devwithlando) Slack and issues in the [issue tracker](https://github.com/lando/lando/issues). - -Anyone can become a contributor. There is no expectation of commitment to the project, no specific skill requirements and no selection process. To become a contributor, a community member simply has to perform one or more actions that are beneficial to the project. - -Some contributors will already be engaging with the project as users, but will also find themselves doing one or more of the following: - - * Supporting new users (current users often provide the most effective new user support) - * Reporting bugs - * Identifying requirements - * Supplying graphics and web design - * Writing Code - * Assisting with project infrastructure - * Writing documentation - * Fixing bugs - * Adding features - * Triaging issues - * Attempting to replicate bugs - -As contributors gain experience and familiarity with the project, they may find that the project maintainers start relying on them more and more. When this begins to happen, they gradually adopt the role of committer, as described above. - -## Security - -If you have discovered a security issue with Lando, please contact the Lando Security Team directly at [security@devwithlando.io](mailto:security@devwithlando.io). We manage security issues separately in a private repository until the issue has been resolved. Even if you're not sure if it's a security problem, please contact the security team before filing an issue, blogging or tweeting about it. - -## Users - -Users are community members who have a need for the project. They are the most important members of the community; without them, the project would have no purpose. Anyone can be a user; there are no specific requirements. - -Users should be encouraged to participate in the life of the project and the community as much as possible. User contributions enable the project team to ensure that they are satisfying the needs of those users. Common user activities include (but are not limited to) the following: - - * Evangelizing about the project - * Informing developers of project strengths and weaknesses from a new user's perspective - * Providing moral support (a 'thank you' goes a long way) - * Providing financial support - -Users who continue to engage with the project and its community will often find themselves becoming more and more involved. Such users may then go on to become contributors, as described above. diff --git a/contrib/security.md b/contrib/security.md deleted file mode 100644 index e044aa1..0000000 --- a/contrib/security.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: Learn how to submit a security issue to Lando. ---- - -# Security - -If you have discovered a security issue with Lando, please contact the Lando Security Team directly at [security@devwithlando.io](mailto:security@devwithlando.io). We manage security issues separately in a private repository until the issue has been resolved. Even if you're not sure if it's a security problem, please contact the security team before filing an issue, blogging or tweeting about it. - -## Security Team - -* [Dustin LeBlanc](https://github.com/dustinleblanc) -* [Mike Pirog](https://github.com/pirog) -* [Geoff St. Pierre](https://github.com/serundeputy) diff --git a/contrib/support.md b/contrib/support.md deleted file mode 100644 index 0e4db82..0000000 --- a/contrib/support.md +++ /dev/null @@ -1,7 +0,0 @@ -# 5. Show your Support - -Now that you've joined our mission of liberation, freedom and justice, it's time to tell the world. We realize some of these sound silly, stupid and pointless but we live in a world of clicks and likes. See recommendations below: - -* Star our project on [GitHub](https://github.com/lando/lando) -* Follow us on [Twitter](https://twitter.com/devwithlando) -* Tweet at us on [Twitter](https://twitter.com/devwithlando) diff --git a/contrib/triage-getting-started.md b/contrib/triage-getting-started.md deleted file mode 100644 index f98b6e0..0000000 --- a/contrib/triage-getting-started.md +++ /dev/null @@ -1,68 +0,0 @@ -# Getting Started - -Welcome intrepid Lando contributor! Thank you for joining the alliance and jumping on the front lines to triage issues! - -Issue triage is incredibly important to the project. Good handling of issue reports from our users leads to folks sticking around and getting all the benefits that Lando has to offer, becoming contributors themselves, and improving the overall health and sustainability of the project. - -When a user files an issue, they're probably either filled with hope and energy about improving the project, or frustration caused by their expectations not lining up with their experience. Both of these energies are valuable when channeled correctly, and damaging when mismanaged. - -Behind every issue is a person taking the time to fill out the report when they could have simply remained silent. They could have left their good ideas on the shelf, thrown Lando in the trash, or needlessly struggled in silence. - -With all this in mind, treat issue reporters with respect, assume good will, and ask for clarification when needed. The extra energy you put in here to show kindness and compassion can be the difference between steering the project towards growth and sustainability or stagnation and burnout. - -Now that you're equipped with the laser sword of empathy and the armor of respect, this is the standard procedure you should go through to triage an issue. - -## Requirements - -1. A Github account -2. [Install Lando](/basics/installation.html) (So you can reproduce issues) - -## Classify the Issue - -The first step in triaging an issue is to decide if the issue is a _bug report_, _feature request_, _documentation request_, or a _guide request_. - -Our issue templates will hopefully help to pre-categorize issues for us, but use your discretion to recategorize issues that may have come in under the wrong label. It's not uncommon for a user to assume that their issue is a bug when it is really a need to improve documentation, or even for a user to assume they've done something wrong when they've actually just discovered a bug for us! - -Review the issue and recategorize as necessary. - -## Bug Reports - -If the user is reporting that something isn't working as documented, or something generally appears to be broken, it should be classified as a bug report. - -The first thing you want to do is to check the report against our [bug reporting template](https://github.com/lando/lando/blob/master/.github/ISSUE_TEMPLATE/bug_report.md). - -The most important thing we need for a good bug report are reliable steps to reproduce the issue. If the user has included steps to replicate, you should first try to replicate the bug. - -If you do nothing else, this is the most valuable thing you can do for Lando maintainers. It can sometimes be time consuming, but making sure we can replicate a bug saves massive amounts of time for the intrepid developer who attempts to fix the bug. It helps us to write clear functional tests and spend less time fixing the bug. - -Once steps to reproduce have been ironed out, the issue should be tagged as `triaged`. - -If you can't reproduce the issue, tag it with `can not replicate` and let the user know that you are unable to replicate the issue. If you can think of additional information that might be helpful, request it in your comment. Non-reproducable issues will remain unscheduled until they are closed by a maintainer or stalebot. - -## Feature Requests - -If the user is asking for something that Lando currently doesn't do, this is a feature request. If the user wants Lando to add a new command to our API, a new service, recipe, tooling command, or support a new operating system we don't currently support, this is a feature request. - -Refer to the [feature request template](https://github.com/lando/lando/blob/master/.github/ISSUE_TEMPLATE/feature_request.md) to see what kind of data we want from the user. If their report is missing one of these areas, it might be helpful to ask them questions about the areas that need clarification. - -New feature requests will be regularly reviewed by the maintainers and scheduled, iceboxed, or closed as appropriate, as long as the request is something you can understand, it can be reviewed by a maintainer at a later date. If it seems unclear, it would be helpful to ask clarifying questions from the requester so that the issue is fully fleshed out when a maintainer is able to review it. - -## Documentation Requests - -Documentation requests should be tagged with `documentation` and checked against the [documentation issue template](https://github.com/lando/lando/blob/master/.github/ISSUE_TEMPLATE/documentation.md). - -If a reference page isn't included, try to find the right page in the documentation that addresses the topic at hand and add a link to the page in the issue. If there is no suitable page, a new one will need to be created. - -## Guides - -Some documentation requests might actually be [guide](/contrib/guides-intro.html#what-is-a-guide) requests in disguise. - -If the requester is looking for the answer to a specific technical question like "How do I run Behat tests using Chromedriver with Lando?", the issue should be classified as a guide request (and tagged with `guide`). - -In some instances, the user might actually have more subject matter expertise than the contributor team. In the example above, using Behat and Chromedriver, asking the user to describe how they have possibly setup this workflow outside of Lando might be a clue that helps someone eventually contribute the guide that will help with this request in the future. - -It also may be helpful to provide links to existing documentation that provides some building blocks for the ultimate use case being described (for example, giving the Behat user above a link to our compose documentation, service overrides documentation, and tooling documentation). Doing this can provide the raw materials they need to forge the solution so they can come back and write the guide themselves. - -## Extra Credit - -We use an application called [Zenhub](https://zenhub.com) to help track and schedule Lando issues. Zenhub is free and if you register, you can see the current state of any issues. We use a fairly standard set of swim lanes to schedule work. If you are curious about the state of an issue, you can get more details here. diff --git a/contrib/vision.md b/contrib/vision.md deleted file mode 100644 index 9b79288..0000000 --- a/contrib/vision.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -description: The Lando project vision; liberate developers from dev monotony together as a community! ---- - -# Project Vision - -This document serves as a high level set of considerations that maintainers should reference and attempt to adhere to while making decisions. - -While it doesn't need to be strictly interpreted, it does serve, more or less, as both manifesto and set of core values. - -## Why Does Lando Exist? - -> A user should be able to `git clone` a repository, run `lando start` and get **EVERYTHING** they need to develop their site locally in a few minutes. - -Lando's primary purpose is to be the fastest and least painful way for developers or teams of developers to spin up the services, tools and automation tasks they need to develop their projects locally. It aims to accomplish this through a single, checked-into-version-control, YAML-based configuration file called `.lando.yml`, which lives in a project's root directory. - -**This means that Lando is essentially local development dependency management handled on a per-project basis.** - -More specifically, Lando is a free, open source, cross-platform, local development environment and DevOps tool built on Docker container technology and written in NodeJS. It is designed to work with most major languages, frameworks and services, and provide an easy way for developers of all types to specify simple or complex requirements for their projects and then quickly get to work on them. - -With Lando you should be able to do the following: - - * Closely mimic your production environment and DevOps toolchain locally. - * Standardize your teams local experience on OSX, Windows and Linux. - * Integrate with hosting providers like Pantheon or build complex DevOps pipelines. - * Use Lando in continuous integrations environments to minimize setup time and mimic local. - * Easily customize or extend tooling, deployment options and basically any other functionality. - * Free yourself from the tyranny of inferior local development products. - -Lando is not a magic pill to solve local development, nor is it a replacement for a badly designed application. Lando is a tool that requires at least some level of skill and expertise to use. - -## What is the Goal of Lando? - -Lando aims to be the only, or primary, local development and DevOps tool you need for **ALL** your projects. - -## How Do We Develop and Design Lando? - -The top 10 design and development principles we use when making Lando that help keep us focused on Lando's core purpose, filter out noise, traps and common dev pitfalls while maximizing project survivability are shown below: - -### 1. Minimalism - -Less is more. We seek to use the least amount of code and dependencies to accomplish a given feature or objective. This makes the project more maintainable in the long run. New dependencies should not be introduced to the project without careful discussion and consideration. - -We like to make sure [CodeClimate](https://codeclimate.com/github/lando/lando) doesn't get too upset with us. - -### 2. Deliberation - -It's easy to add in every seemingly small and benign feature or pull request from every user. But each added feature means more potential for support churn and thus less work on advancing the project's stated goals. - -Features should be added when they serve a stated design goal or objective or are overwhelmingly supported by the community. It is very important to assess whether each feature is going to be more trouble than its worth or if it furthers the project's stated goals. - -### 3. Unobtrusiveness - -If Lando cannot do something out of the box without editing a user's codebase then it's something the user needs to set up on their own. It is extremely difficult to provide simple, consistent and reliable codebase edits that work for a majority of users. Often these code edits change frequently and are hard to maintain. Documentation and examples are the way to go here. - -### 4. User Space - -Once the user has completed the initial Lando installation, they should never need to use `sudo` or admin rights to run anything else Lando related. Prompting a user continually for a password is annoying and editing system things that require `sudo` rights is a recipe for disaster. - -### 5. Upstreams - -Attempting to provide big Lando-based workarounds for significant issues in upstream projects can be a huge time suck. If Lando absolutely requires a dependency with problems, then we need to be comfortable indicating to our users that the problem exists there and that it needs to be solved there. - -### 6. Documentation - -Great documentation and examples are often the things that make an open source project successful. We care about having extensive, well written and intuitively organized documentation. - -### 7. Project Management - -Well defined milestones and a Kanban board can go a long way to triaging and prioritizing issues. This focuses current sprints, generates a healthy backlog and icebox and keeps issues and tasks tidy, manageable and not overwhelming. - -We also like to [use robots](https://probot.github.io/apps/) to help keep our issues and pull requests tidy. See [this](https://github.com/probot/stale#is-closing-stale-issues-really-a-good-idea) for the benefits of issue automation. - -### 8. Value - -Tackling "low hanging fruit" issues that are easy to test, solve and that impact many users keeps project morale high. - -### 9. Testing - -Writing unit and functional tests should be done whenever possible. - -### 10. Fun - -You are working on a project named after a fucking Star Wars character! Try to keep code comments, docs and other things fun! - -## Audience - -Lando is built primarily for professional developers working as freelancers or part of a dev team. The ideal Lando on ramp is for a DevOps person to design the `.lando.yml` file and a basic `README` for each project and to distribute those things to their other developers. - -## Other Things to Consider - -1. Community morale and growth is important and sometimes that means betraying some of the above. -2. Expectation management is a thing. Don't write a check you or Lando can't cash. -3. Time is our scare resource so let's make sure we use it as efficiently as possible. -4. There are traps and temptations everywhere. Stay upon the path of righteousness. diff --git a/guides/access-by-other-devices.md b/guides/access-by-other-devices.md index 90afd07..42feb01 100644 --- a/guides/access-by-other-devices.md +++ b/guides/access-by-other-devices.md @@ -1,16 +1,24 @@ --- +title: Accessing Lando from Other Devices on Your Local Network description: Learn how to access your Lando sites from other devices on your network like mobile phones or tablets. -author: - name: Team Lando - twitter: devwithlando -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# Accessing Lando from Other Devices on Your Local Network - - - - You may want to use another device (e.g., a smartphone or tablet) to test your Lando app. You can access your lando app easily from another device as follows. ## lando share (Testing over the Internet) @@ -42,6 +50,3 @@ Open a command prompt and enter the command `hostname -I | cut -d' ' -f1`. You can do this by running `lando info` from a command prompt and looking for the URL to your site, which should look something like this: `http://localhost:33333`. In this case, `33333` is the port number. You can now visit your lando app from other devices by going to `IP address: Port number`. (Example: `http://192.168.0.123:33333`) - - - diff --git a/guides/accessing-php-logs.md b/guides/accessing-php-logs.md deleted file mode 100644 index 1a1488c..0000000 --- a/guides/accessing-php-logs.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Accessing the PHP Error Logs -metaTitle: Accessing the PHP Error Logs | Lando -description: Learn how to see your PHP error logs in Lando. -summary: Learn how to see your PHP error logs in Lando. -date: 2021-11-23T18:06:56.254Z -original: -repo: - -author: - name: Team Lando - pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd - link: https://twitter.com/devwithlando - -feed: - enable: true - author: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando - contributor: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando ---- - -# Accessing the PHP Error Logs - - - - -Seeing errors coming off a PHP app is usually very easy in Lando: - -```bash -lando logs -s appserver -f -``` - -Because `lando logs` is actually a light wrapper around `docker logs`, you'll notice that you also get general server error messages and other warnings aside from PHP errors. Sometimes it can help to grep the output to isolate PHP-relevant messages: - -```bash -lando logs -s appserver -f | grep 'WARNING\|PHP' -``` - -::: warning If PHP isn't running in "appserver"... -`appserver` is the default service name in most PHP applications on Lando. If you have PHP running in a service with a different name than `appserver`, simply substitute the relevant service name instead of `appserver`. -::: - - - - - diff --git a/guides/db-export.md b/guides/db-export.md index 4e3b837..2692b50 100644 --- a/guides/db-export.md +++ b/guides/db-export.md @@ -1,13 +1,24 @@ --- -metaTitle: Exporting SQL Databases | Lando +title: SQL Export description: Learn how to export your MySQL, MariaDB or Postgres databases from Lando. -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# SQL Export - - - Lando ships with a helper `db-export` script that is available in all our `LAMP` and `LEMP` based recipes. Used in the recipe context it should export a database dump `DATABASE.TIMESTAMP.gz` into the `/app` directory. You can also export databases from other services. @@ -68,6 +79,3 @@ tooling: stdout: description: Dump database to stdout ``` - - - diff --git a/guides/db-import.md b/guides/db-import.md index 115a98f..63fbfcf 100644 --- a/guides/db-import.md +++ b/guides/db-import.md @@ -1,13 +1,24 @@ --- -metaTitle: Importing SQL Databases | Lando +title: SQL Import description: Learn how to import your MySQL, MariaDB or Postgres databases to Lando. -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# SQL Import - - - Lando ships with a helper `db-import` script that is available in all our `LAMP` and `LEMP` based recipes. Used in the recipe context it should import a database dump into the recipe-provided database by default but can be used on additional database services as well. You can also import databases into other hosts and databases. It will currently handle uncompressed, gzipped or zipped dump files. @@ -78,7 +89,3 @@ tooling: description: Do not destroy the existing database before an import boolean: true ``` - - - - diff --git a/guides/drupal-7-landoize-an-extant-app.md b/guides/drupal-7-landoize-an-extant-app.md deleted file mode 100644 index 4857b65..0000000 --- a/guides/drupal-7-landoize-an-extant-app.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Drupal 7 Landoize an Extant App -metaTitle: Drupal 7 Landoize an Extant App | Lando -description: Use Lando as local development environment for an existing Drupal 7 app. -date: 2020-01-21T17:34:56.556Z -original: -repo: - -author: - name: Geoff St. Pierre - pic: https://www.gravatar.com/avatar/e103c2a2a8f8caf5848b38b80422cdd9 - link: https://twitter.com/serundeputy - -feed: - enable: true - author: - - name: Geoff St. Pierre - email: alliance@lando.dev - link: https://twitter.com/serundeputy - contributor: - - name: Geoff St. Pierre - email: alliance@lando.dev - link: https://twitter.com/serundeputy ---- - -# Drupal 7 Landoize an Extant App - - - -If you and your team have an existing Drupal 7 application that you would like to use Lando for local development you just need to add a `.lando.yml` configuration file -to the project and commit it to git. - -First in a terminal move to the directory that contains your Drupal 7 project: - -```bash -cd PATH/TO/YOUR/DRUPAL7/APP -``` - -## Lando Init - - -Then use the `lando init` command to build your `.lando.yml` file: - -```bash -lando init -``` - -Lando will ask you `From where should we get your app's codebase?` select `current working directory`. - - - -Then Lando will ask you `What recipe do you want to use?` select `drupal7`. - - - -Then Lando needs to know what directory has the Drupal code it asks `Where is your webroot relative to the init destination?` If your -code is in the current directory you can just hit enter. - - - - -::: tip Nested Web Root -If you are using a nested web root then you should -specify the path to the Drupal code here like: `web` -::: - -Then Lando prompts for the app name: ` What do you want to call this app?` you can type anything you like, i.e. MyApp. - - - -The `lando init` command will create the `.lando.yml` config file for you. If you chose the `drupal7` recipe your config file should look like this: - -```yaml -name: myapp -recipe: drupal7 -config: - webroot: . -``` - -## Lando Start - - -Now you are ready to start your app. - -```bash -lando start -``` - -This will build out the containers necessary for your Drupal 7 app. You'll end up with a screen like this once the app is started: - - - -Now you can copy any one of the resulting URLs and paste it into a browser to visit your Drupal 7 app running in Lando! - -## Pro Tips - -If you issue additional terminal commands or clear the screen you can get the URLs and other info about your app anytime by using the `lando info` command: - -```bash -lando info -``` - -The info command will give you lots of useful information about your app: - - - - - - diff --git a/guides/drupal-multisite-on-lando.md b/guides/drupal-multisite-on-lando.md deleted file mode 100644 index 34c5158..0000000 --- a/guides/drupal-multisite-on-lando.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Running Drupal Multisite on Lando -metaTitle: How to run Drupal Multisite on Lando | Lando -description: How to run multisite Drupal installs on Lando. -summary: How to run multisite Drupal installs on Lando. -date: 2021-03-17T14:05:33.088Z -original: -repo: - -author: - name: Brook Heaton - pic: https://avatars.githubusercontent.com/u/19474864 - link: https://github.com/brooke-heaton - -feed: - enable: true - author: - - name: Brook Heaton - email: alliance@lando.dev - link: https://github.com/brooke-heaton - contributor: - - name: Brook Heaton - email: alliance@lando.dev - link: https://github.com/brooke-heaton ---- - -# How to Run Drupal Multisite on Lando - - - - -[Drupal multisite](https://www.drupal.org/docs/multisite-drupal) is a feature of Drupal that allows you to run multiple Drupal installs off of a common codebase. -It's common in universities and other settings where you might want to share themes and modules between a collection of many websites. - -## Configuring Lando - -To run Drupal multisite you need to do several things: - -1. Your `.lando.yml` will need proxies for each multisite in the appserver array -2. The `settings.local.php` file within your subsite directory (ex: `docroot/sites/site1/`) needs settings to connect to the appropriate Lando-hosted database. -3. You need Drush aliases pointing to your local. If you use Drupal console, you'll need to specify your uri (ex: `drupal --uri=http://site1.lndo.site cr all`). - -## 1. Configure .lando.yml - -Create proxies for each multisite in the appserver array in your `.lando.yml` file. Ex: - -```yaml -proxy: - appserver: - - site1.lndo.site - - site2.lndo.s -services: - site1: - type: mysql:5.7 - portforward: 33068 - config: - confd: lando/mysql/conf.d - site2: - type: mysql:5.7 - portforward: 33069 - config: - confd: .lando/mysql/conf.d -``` - -## 2. Configure each subsite's local.settings.php - -Configure each subsite to include the default Lando config to connect to the database, along with specifying the appserver name you defined in `.lando.yml`. For example, in `docroot/sites/site1/settings/local.settings.php` you would include... - -```php -/** - * Database configuration. - */ -$databases['default'] = array ( - 'default' => array ( - 'driver' => 'mysql', - 'database' => 'database', - 'username' => 'mysql', - 'password' => 'password', - 'prefix' => '', - 'port' => 3306, - ) -); -// The only thing to add from the out-of-the-box Lando db is the special host for each subsite -$databases['default']['default']['host'] = 'site1'; -``` - -::: warning If you're on Acquia... -You must specify $_Server['PWD']=DRUPAL_ROOT if you use Drush 9 on Acquia (this may apply to some other hosts as well). Update your main `sites/default/settings.php` to tell our local Drupal to use the `/settings/local.settings.php` within each subsite: - -```php -if (!key_exists('AH_SITE_ENVIRONMENT', $_ENV)) { - $environment_settings = __DIR__ . '/settings/local.settings.php'; - if (file_exists($environment_settings)) { - include $environment_settings; - } -} -// Temporary fix because drush9 blocks superglobals -$_SERVER['PWD']=DRUPAL_ROOT; -``` -::: - -## 3. Define Drush aliases for each subsite - -Finally you'll need some Drush aliases so Drush can find your subsite installs. Here `docroot` is where our Drupal root is. For example, in `site_root/drush/sites/site-aliases/site1.site.yml` we would define... - -```yaml -local: - uri: 'https://site1.lndo.site' - paths: - - files: /path_to_your_local_site/site_root/docroot' -dev: - host: 'site1dev.ssh.prod.acquia-sites.com' - user: 'site1.dev' - root: '/var/www/html/site1.dev/docroot' - uri: 'site1dev.prod.acquia-sites.com' - ac-site: 'site1' - ac-env: 'dev' - ac-realm: 'prod' - paths: - drush-script: 'drush8' -test: - root: '/var/www/html/site1.test/docroot' - ac-site: 'site1' - ac-env: 'test' - ac-realm: 'prod' - uri: 'site1stg.prod.acquia-sites.com' - host: 'site1stg.ssh.prod.acquia-sites.com' - user: 'site1.test' - paths: - drush-script: 'drush8' -prod: - root: '/var/www/html/site1.prod/docroot' - ac-site: 'site1' - ac-env: 'prod' - ac-realm: 'prod' - uri: 'site1.prod.acquia-sites.com' - host: 'site1.ssh.prod.acquia-sites.com' - user: 'site1.prod' - paths: - drush-script: 'drush8' -``` - -I'm using drush8 against the cloud here by specifying that in the drush-script, since I've had issues trying to use drush9 and have no defined drush9 aliases, but that's purely a concern of working with Acquia Cloud. - - - - - - - diff --git a/guides/external-access.md b/guides/external-access.md index 4726cdf..ec49280 100644 --- a/guides/external-access.md +++ b/guides/external-access.md @@ -1,12 +1,24 @@ --- +title: Accessing Your Services Externally description: Learn how to access your Lando services externally from your host machine. -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# Accessing Your Services Externally - - - It is often desirable to interact with your services on the host machine level. Common examples of this are accessing a SQL database through a GUI client like SequelPro, or running unit tests through an IDE like PhpStorm. Lando makes this process relatively painless. @@ -133,6 +145,3 @@ Next, ensure your framework (PHP) interpreter is configured to use a Docker cont Finally, when configuring your framework, edit the Docker Container settings and change the Network Mode to the name of your Lando docker network. Now your IDE should be able to communicate with Lando. - - - diff --git a/guides/frontend.md b/guides/frontend.md deleted file mode 100644 index fe79308..0000000 --- a/guides/frontend.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -description: Learn how to add node services to your Lando app so you can use yarn, npm, grunt, gulp, webpack, etc for all the frontend magic. -date: 2019-11-05 ---- - -# Frontend Tooling - - - -Most modern frontend tooling relies upon the NPM package manager. In this tutorial we'll show you how to add Node to your app, download tools like Gulp/Grunt/Webpack, and run them in your Lando app. - -When you're done, you should be able to distribute your Lando app with a full set of frontend tools that are standardized to work the same on every team member's computer. - -## Add Node Service - -Assuming you're starting with a "Lando-ized" app, open the `.lando.yml` file in the root of your app directory. In this example we'll assume you're using a very basic [LAMP](./../config/lamp.md) recipe. - -To install our frontend tooling we need to be able to run Node. Fortunately it's very easy for us to add a basic Node service to our app: - -```yml -name: myapp -recipe: lamp - -services: - node: - type: node - build: - - npm install -``` - -Note the `build` section. This bash command will automatically run when we start our app, installing any Node packages specified in our package.json file. - -## Adding Grunt/Gulp/Etc. - -While we're now able to install Node packages for our project, we still need to be able to install global tooling like Grunt, Gulp, or other task runners that form the backbone of our frontend tooling. Fortunately, Lando makes this easy through the `globals` tag: - - -```yml -services: - node: - type: node - build: - - npm install - - gulp - globals: - gulp-cli: latest -``` - -You can do the same thing for any NPM project; for example Grunt would be `grunt-cli: "latest"`. This is the equivalent to installing a package with `npm install -g project-name`. - -Note we've now added a another command to `build` to automatically run `gulp` every time we start the app. This, of course, assumes that the default `gulp` task is defined otherwise you should expect your build step to fail. - -::: tip Package Versions Are Fully Armed and Customizable -You can lock your app tooling to whatever package version you like. Don't use node:6.10? Change to one of the other available versions in the [service documentation](./../config/node.md). And you're free to download whatever version of a global service your heart desires. For example, if you want to lock your team to something more stable than the latest gulp-cli, change that entry in `globals` to `gulp-cli:1.3.0`. -::: - -## Making Tooling Available on the CLI - -Almost there! All our services are installed, but how do we run a command on the fly, say starting a watch task or running `lando npm install hot-new-thing` to start experimenting with a new package? We could SSH into our node container, but that's SO 2016. Instead, we'll expose our new tooling via the CLI by adding this [`tooling`](./../config/tooling.md) section to our `.lando.yml` file: - -```yml -tooling: - npm: - service: node - node: - service: node - gulp: - service: node - yarn: - service: node -``` - -After restarting your app, you should be able to run `lando node`, `lando gulp` or `lando npm` and have the corresponding commands run. This is particularly useful if you want to kickoff a watch task you might have configured, say `lando gulp watch`. - - - diff --git a/guides/how-can-i-pull-sync-my-database-on-lamp-y-recipes.md b/guides/how-can-i-pull-sync-my-database-on-lamp-y-recipes.md deleted file mode 100644 index c9a8cc0..0000000 --- a/guides/how-can-i-pull-sync-my-database-on-lamp-y-recipes.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: Importing a remote database and files into Lando using Laravel Envoy -description: Add a pull command for LAMP, LEMP, Drupal, Backdrop, Laravel, PHP apps hosted on metal. -summary: Add a pull command for LAMP, LEMP, Drupal, Backdrop, Laravel, PHP apps hosted on metal. -date: 2020-03-30T19:23:00.720Z -original: -repo: - -author: - name: Geoff St. Pierre - pic: https://www.gravatar.com/avatar/e103c2a2a8f8caf5848b38b80422cdd9 - link: https://twitter.com/serundeputy - -feed: - enable: true - author: - - name: Geoff St. Pierre - email: alliance@lando.dev - link: https://twitter.com/serundeputy - contributor: - - name: Geoff St. Pierre - email: alliance@lando.dev - link: https://twitter.com/serundeputy ---- - -# Importing a remote database and files into Lando using Laravel Envoy - - - - -If you are hosted on a server like Linode, Digital Ocean, AWS or the like you can still cook up a `lando pull` command to pull your database and/or file assets down from production using Laravel Envoy. - -This will work for all Lando apps that extend from `laempy` recipes like: LAMP, LEMP, Dupal 6/7/8, Backdrop, Joomla, WordPress and Laravel. - -## Requirements - -We'll need a few things to get this set up for our `laempy` apps. We need to require the `laravel/envoy` composer package in our app, configure a `.env` file, configure an `Envoy.blade.php` file to define our tasks, and configure some `tooling` in our `.lando.yml` file. Let's jump in. - -## laravel/envoy - -To get the `laravel/envoy` package just use `composer`: - -```bash -lando composer require laravel/envoy -``` - -## .env - -If you don't have a `.env` file create one and add this to it, if you already have on just add this: - -```bash -LP_DB_PWD= -LP_DB= -LP_PROJECT_ROOT= # like: /var/www/myapp -LP_SITE_ROOT= # like for nested web root /var/www/myapp/web -LP_DB_BACK_PATH= # like /home/me/backups/appname/dbs -LP_FILES_BACK_PATH=@ # like me@server_ip -``` -after creating or updating your `.env` file you'll need to rebuild the app. - -```bash -lando rebuild -y -``` - -## Envoy.blade.php - -Create a file in the root of your app called `Envoy.blade.php` and add this to it: - -```php -@setup - $ssh = getenv('LP_SSH_CMD'); -@endsetup - -@servers(['web' => $ssh, 'localhost' => '127.0.0.1']) - -@story('pull') - dump - getdb - cleandb - backupfiles - getfiles - cleanfiles -@endstory - -@task('dump', ['on' => 'web']) - mysqldump -u root -p{{ getenv('LP_DB_PWD') }} {{ getenv('LP_DB') }} > {{ getenv('LP_DB_BACK_PATH') }} -@endtask - -@task('getdb', ['on' => 'localhost']) - scp {{ getenv('LP_SSH_CMD') }}:{{ getenv('LP_DB_BACK_PATH') }} db.sql -@endtask - -@task('cleandb', ['on' => 'web']) - rm {{ getenv('LP_DB_BACK_PATH') }} -@endtask - -@task('backupfiles', ['on' => 'web']) - cd {{ getenv('LP_SITE_ROOT') }} - tar czf {{ getenv('LP_FILES_BACK_PATH') }} files -@endtask - -@task('getfiles', ['on' => 'localhost']) - scp {{ getenv('LP_SSH_CMD') }}:{{ getenv('LP_FILES_BACK_PATH') }} /app/f.tgz -@endtask - -@task('cleanfiles', ['on' => 'web']) - rm {{ getenv('LP_FILES_BACK_PATH') }} -@endtask -``` - -## .lando.yml - -In your `.lando.yml` file tell Lando about your `.env` file and add tooling for the `pull` command. - -If you don't have an `env_file` section add one. - -```yaml -env_file: - - .env -``` - -If you just added this your app will require a rebuild. - -```bash -lando rebuild -y -``` - -In your `tooling` section add. - -```yaml -tooling: - envoy: - service: appserver - pull: - service: appserver - description: Pull and import the database from production. - cmd: - - appserver: envoy run pull - - database: /helpers/sql-import.sh db.sql - - appserver: rm db.sql - - appserver: rm -rf /app/web/files # change this to the /path/to/file/assets for your app. - - appserver: tar xvzf f.tgz -C /app/web - - appserver: rm f.tgz -``` - -## Using the pull command - -Now to use your pull command you'll need to configure the `backups` directories as specified in `LP_DB_BACK_PATH` and `LP_FILES_BACK_PATH` -to exist on your server. Then just run: - -```bash -lando pull -``` - -and that will backup your db and file assets and pull them down for you! Happy Lando travels folks. - - - diff --git a/guides/how-do-i-configure-a-lando-recipe.md b/guides/how-do-i-configure-a-lando-recipe.md index ed9da3d..e30cf51 100644 --- a/guides/how-do-i-configure-a-lando-recipe.md +++ b/guides/how-do-i-configure-a-lando-recipe.md @@ -1,32 +1,24 @@ --- title: How do I configure a Lando Recipe? -metaTitle: How do I configure a Lando Recipe? | Lando description: Using the lando config key to configure your recipe. -date: 2020-02-04T18:00:18.702Z -original: -repo: - -author: - name: Team Lando - pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd - link: https://twitter.com/devwithlando - -feed: - enable: true - author: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando - contributor: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# How do I configure a Lando Recipe? - - - When you first initialize a lando app (`lando init`) you get a very simple `.lando.yml` configuration file. Here is the `.lando.yml` file for the LAMP recipe. ```yaml @@ -57,7 +49,7 @@ You can check that the change took by using `lando php -v`: ```bash └─ $ ∴ lando php -v -PHP 5.6.40 (cli) (built: Jan 23 2019 00:10:05) +PHP 5.6.40 (cli) (built: Jan 23 2019 00:10:05) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies @@ -75,6 +67,3 @@ config: ``` Again rebuild for the changes: `lando rebuild -y` and 💥 you now have PHP 5.6 and MariaDB 10.3! - - - diff --git a/guides/how-do-i-set-the-timezone-of-a-lando-service.md b/guides/how-do-i-set-the-timezone-of-a-lando-service.md index cf2f6d5..dfd6d06 100644 --- a/guides/how-do-i-set-the-timezone-of-a-lando-service.md +++ b/guides/how-do-i-set-the-timezone-of-a-lando-service.md @@ -1,35 +1,24 @@ --- title: How do I set the timezone of a Lando service? -metaTitle: How do I set the timezone of a Lando service? | Lando description: Set the timezone of a Lando service for testing time sensitive operations -summary: Set the timezone of a Lando service for testing time sensitive operations -date: 2020-03-27T22:30:09.777Z -original: -repo: - -author: - name: Team Lando - pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd - link: https://twitter.com/devwithlando - -feed: - enable: true - author: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando - contributor: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# How do I set the timezone of a Lando service? - - - - - If you need to set the timezone of a Lando service here is how! Just symlink the appropriate timezone you need in a `run_as_root` build step. Here is an example `.lando.yml` file. ```yaml @@ -58,6 +47,3 @@ lando rebuild -y ``` and you'll have the timezone set in those services. - - - diff --git a/guides/how-to-wire-up-browsersync-and-gulp-in-my-lando-app.md b/guides/how-to-wire-up-browsersync-and-gulp-in-my-lando-app.md deleted file mode 100644 index 5eee2f3..0000000 --- a/guides/how-to-wire-up-browsersync-and-gulp-in-my-lando-app.md +++ /dev/null @@ -1,186 +0,0 @@ ---- -title: How do I wire up Browsersync and Gulp in my Lando app? -metaTitle: How to wire up Browsersync and Gulp in my Lando app | Lando -description: How to setup Lando with Browsersync & Gulp so that edits to scss files are reflected immediately in your browser. -summary: How to setup Lando with Browsersync & Gulp so that edits to scss files are reflected immediately in your browser. -date: 2020-04-07T14:05:33.088Z -original: -repo: - -author: - name: Jonathan Shaw - pic: https://www.gravatar.com/avatar/ba46283b2033d3a0201f2042746f81e7 - link: https://github.com/jonathanjfshaw - -feed: - enable: true - author: - - name: Jonathan Shaw - email: alliance@lando.dev - link: https://github.com/jonathanjfshaw - contributor: - - name: Jonathan Shaw - email: alliance@lando.dev - link: https://github.com/jonathanjfshaw ---- - -# How do I wire up Browsersync and Gulp in my Lando app? - - - - -[Browsersync](https://www.browsersync.io) is a nodejs package that synchronizes website changes to the browser. -While it can be used for many things, this guide shows how to use it to push changes made to css files to the browser. - -This guide also assumes you're using Gulp to automate your theming tasks, and are editing SASS/SCSS files that need compiling -into css before they can be previewed in your browser. - -## Configuring Lando for Browsersync - -### Create the proxy - -First you must create a proxy domain for browsersync to use. Changes you make to your scss files will only show up when -you are looking at this `https://bs.myproject.lndo.site`, not at the usual domain `https://myproject.lndo.site`. -Add your equivalent of this to your .lando.yml file: - -```yaml -proxy: - node: - - bs.myproject.lndo.site:3000 -``` - -### Stream changes whenever Lando is running -It's most convenient if Browsersync is running in the background whenever your Lando site is up. -One simple way to achieve this is to fire off a gulp task whenever Lando starts up. -If you had a gulp task called 'watch' then you'd put this in .lando.yml: - -```yaml -services: - node: - type: node - ssl: true - command: cd /app/path/to/gulpfile && node_modules/.bin/gulp watch -``` - -## Configuring Gulp to push scss - -### Compiling scss - -Here's an example of a `gulpfile.js` that defines a task that compiles scss into css. -Note the addition of `browserSync.stream()` at the end of the pipeline. -This will send the compiled css to the browser, if browsersync is running. - -```js -// Live CSS reload & browser Syncing. -var browserSync = require('browser-sync').create(); - -// Gulp plugin for showing scss file in browser inspect tools rather than the compiled css file. -var sourcemaps = require('gulp-sourcemaps'); - -// Gulp plugin for sass. -var sass = require('gulp-sass'); - -// Allows you to use glob syntax in imports (i.e. @import "dir/*.sass"). Use as a custom importer for node-sass. -var importer = require('node-sass-globbing'); - -// Default configuration. -var config = { - scss: './scss/*.scss', // The top level scss files that include all other scss. - watch: './scss/**', // All scss files that should trigger a recompile. - css: './css', // The path to the generated css files. - node_modules: './node_modules', // The path to the node modules directory. -}; - -// A gulp task that compiles scss into css. Execute with 'gulp scss-compile' -gulp.task('scss-compile', function () { - return gulp.src(config.scss) - .pipe(plumber()) - // Start making a source map, so that the browser can show a developer which scss file is responsible for a css rule. - .pipe(sourcemaps.init({loadMaps: true})) //Not sure if loadMaps is a good idea. - // Compile the scss to css. - .pipe(sass({ - importer: importer, - // Include some useful scss from external node packages. - includePaths: [ - config.node_modules + '/breakpoint-sass/stylesheets/', - config.node_modules + '/compass-mixins/lib/' - ], - // Tweak output styling to make things easier for developers. - outputStyle: 'expanded', - sourceComments: true, - indentWidth: 2 - }).on('error', sass.logError)) - .pipe(sourcemaps.write('maps')) - // Write out the generated css. - .pipe(gulp.dest(config.css)) - // Push the css to the browser. - .pipe(browserSync.stream()); -}); -``` - -### Recompiling whenever the scss changes - -```js -// Watch the scss files and push changes automatically. -gulp.task('watch', function () { - // Setup a browsersync server. - browserSync.init({ - proxy: 'http://appserver_nginx', // Could be 'http://appserver' if you're running apache. - socket: { - domain: 'https://bs.myproject.lndo.site', // The node proxy domain you defined in .lando.yaml. Must be https? - port: 80 // NOT the 3000 you might expect. - }, - open: false, - logLevel: "debug", - logConnections: true, - }); - // Trigger the scss-compile task whenever any file in the defined location changes. - gulp.watch(config.watch, gulp.series('scss-compile')); -}); -``` - -## Trying it out - -* Run `lando rebuild -y` so your new proxy domain is exposed. -* Verify that the output includes under `NODE URLS` your new proxy `https://bs.myproject.lndo.site`, and it is green. -* Run `lando logs -s node -f` to continuously stream the logs of the node service. You should see something like: - -```bash -Using gulpfile /app/path/to/my/theme/gulpfile.js -Starting 'watch'... -... -[Browsersync] Proxying: http://appserver_nginx -[Browsersync] Access URLs: - Local: http://localhost:3000 - External: http://172.20.0.6:3000 -``` - -* Visit your browsersync url `https://bs.myproject.lndo.site` in your browser. It should load normally. -* In the source of this page search for "browser-sync". You should see the browser-sync-client script has been injected into the page. -* Look again at the streaming node logs; something like this should have appeared - -```bash -[Browsersync] Browser Connected: Chrome, version: 80.0.3987.149 -``` - -* In your IDE edit a style rule in an scss file, save if necessary, and wait a few seconds. -* Look again at the logs; something like this should have appeared: - -```bash -Starting 'scss-compile'... -[Browsersync] 2 files changed (style.css.map, style.css) -Finished 'scss-compile' after 1.88 s -``` - -* Look at your open browser window again (without refreshing). You should see the impact of your scss edit. -* Feel very excited! - -## Known issues - -* When submitting a form on `https://bs.myproject.lndo.site` you will be redirected to `https://appserver_nginx` (which is not a working url). -If you know a solution for this problem, please update this guide. -* So to use the forms on a site use the non-browsersync URL, i.e. `https://myproject.lndo.site`. - - - - diff --git a/guides/installing-node-in-your-lando-php-service.md b/guides/installing-node-in-your-lando-php-service.md deleted file mode 100644 index 0d2079c..0000000 --- a/guides/installing-node-in-your-lando-php-service.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Installing node in your Lando PHP service -metaTitle: Installing node in your Lando PHP service | Lando -description: Learn how to install node in a Lando PHP service for things like Pattern Lab or Emulsify -summary: Learn how to install node in a Lando PHP service for things like Pattern Lab or Emulsify -date: 2020-05-12T18:06:56.254Z -original: -repo: - -author: - name: Team Lando - pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd - link: https://twitter.com/devwithlando - -feed: - enable: true - author: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando - contributor: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando ---- - -# Installing node in your Lando PHP service - - - - -Some frontend tooling kits like [Emulsify](https://www.drupal.org/project/emulsify_drupal) or [Pattern Lab](https://patternlab.io/) _may_ assume that `composer/php` can invoke `yarn/npm/node` and vice-versa. This pattern, sadly, is fundamentally at odds with Lando's one-thing-per-container model. - -You can, however, get around it by installing the needed dependencies directly in the service that requires them. - -We've found installing `node` inside a Lando PHP service to generally be the path of least resistance. - -## 1. Using build steps - -Below is an example that installs `node12` using [build-steps](./../config/services.md#build-steps). - -```yaml -services: - myservice: - type: php - build_as_root: - # Note that you will want to use the script for the major version of node you want to install - # See: https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - - curl -sL https://deb.nodesource.com/setup_12.x | bash - - - apt-get install -y nodejs -tooling: - node: - service: myservice - npm: - service: myservice -``` - -You can verify with: - -```bash -lando node -v -lando npm -v -``` - -## 2. Extending a Dockerfile - -If you are planning to extend your service with _additional_ build steps or would like to cache the build steps for a faster `lando rebuild` you should instead consider [extending with a Dockerfile](./../config/services.md#using-dockerfiles) as in the example below: - -**.lando.yml** - -```yaml -services: - myservice: - type: php:custom - via: cli - overrides: - image: lando/php:7.4-with-node12 - build: - context: ./ - dockerfile: Dockerfile.node -tooling: - node: - service: myservice - npm: - service: myservice -``` - -**Dockerfile.node** - -```docker -FROM devwithlando/php:7.4-apache-2 - -# Choose the major node version -ENV NODE_VERSION=12 - -# Install node -RUN curl -sL "https://deb.nodesource.com/setup_${NODE_VERSION}.x" | bash - \ - && apt-get install -y nodejs -``` - -Again, you can verify with: - -```bash -lando node -v -lando npm -v -``` - - - - diff --git a/guides/installing-php-extensions-on-lando.md b/guides/installing-php-extensions-on-lando.md deleted file mode 100644 index 85d0bc1..0000000 --- a/guides/installing-php-extensions-on-lando.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Installing PHP Extensions on Lando -metaTitle: Installing PHP Extensions on Lando | Lando -description: Learn a few ways you can install extra php extensions to your Lando PHP service -summary: Learn a few ways you can install extra php extensions to your Lando PHP service -date: 2020-05-12T16:52:31.824Z -original: -repo: - -author: - name: Team Lando - pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd - link: https://twitter.com/devwithlando - -feed: - enable: true - author: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando - contributor: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando ---- - -# Installing PHP Extensions on Lando - - - - -You may wish to add additional PHP extensions to your Lando [PHP service](./../config/php.md). There are a few different ways you can do this: - -[[toc]] - -Note that both of these strategies make use of underlying utilities provided by the [Official Docker PHP Image]() which is the base image used by Lando's PHP service. We recommend you read more about them [over on their docs](https://hub.docker.com/_/php). - -Also note that you may need to adapt these slightly depending on the PHP version you are using. - -## 1. Using build steps - -If installing your PHP extension is fairly trivial and not a long-running operation you may wish to simply use Lando [build-steps](./../config/services.md#build-steps) - -Here is an example that uses build-steps to install the `xsl` and `stats` extensions. - -```yaml -services: - myservice: - type: php - build_as_root: - - apt-get update -y - - apt install libxslt1-dev -y - - pecl install stats-2.0.3 - - docker-php-ext-install xsl - - docker-php-ext-enable stats -``` - -You can verify the extension was enabled by running: - -```bash -lando ssh -s myservice -c "php -m" -``` - -A downside of this approach is these steps till run _EVERY TIME_ you do a `lando rebuild`. - -## 2. Using Dockerfiles - -If you have complex, lengthy or long running build steps you may wish to create a `Dockerfile` in your repo that directly extends one of [Lando's PHP images](https://hub.docker.com/r/devwithlando/php/tags). - -This approach is great if you care about rebuild speed. Docker will cache the resultant image and only rebuild if the Dockerfile changes. By extension this means your `lando rebuild` will be pretty fast as well. - -It also ensures your Landofile does not get unruly. - -Here is an example that installs the `oci8` and `pdo_sqlsrv` extension. - -**.lando.yml** - -```yaml -services: - myservice: - type: php:custom - overrides: - image: lando/php:7.3-custom - build: - context: ./ - dockerfile: Dockerfile.custom - ports: - - "80" -``` - -**Dockerfile.custom** - -```docker -FROM devwithlando/php:7.3-apache-2 - -# Add php extension helper -ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ - -# Install Oracle Instantclient, OCI8 and Microsoft SQL Server extensions -RUN chmod +x /usr/local/bin/install-php-extensions && sync && \ - install-php-extensions oci8-2.2.0 sqlsrv pdo_sqlsrv -``` - -You can verify the extension was enabled by running - -```bash -lando ssh -s myservice -c "php -m" -``` - - - diff --git a/guides/lando-info.md b/guides/lando-info.md index a911ea8..bb2f1f2 100644 --- a/guides/lando-info.md +++ b/guides/lando-info.md @@ -1,12 +1,24 @@ --- +title: Using $LANDO_INFO description: Learn how to use Lando's default environment variables inside you application. -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# Using $LANDO_INFO - - - Lando will inject an environment variable called `$LANDO_INFO` into each service. This is a `JSON` string representation of the `lando info` command and you can use it to see valuable information about other services such as service hostnames and database connection information and credentials. This is helpful if you want to set application configuration in a way that is portable and dynamic between many lando apps. @@ -40,6 +52,3 @@ More examples coming soon but in the meantime consult the documentation for your * Grab an environment variable * Decode a JSON string to an object - - - diff --git a/guides/lando-phpstorm.md b/guides/lando-phpstorm.md index 2d0ba0f..01c531a 100644 --- a/guides/lando-phpstorm.md +++ b/guides/lando-phpstorm.md @@ -1,13 +1,24 @@ --- +title: Lando + PhpStorm + Xdebug description: Learn how to configure xdebug in Lando using PhpStorm. -date: 2021-10-31 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# Lando + PhpStorm + Xdebug - - - - [PhpStorm](https://www.jetbrains.com/phpstorm/) is a popular code IDE for PHP and Drupal development. This video tutorial shows you how to set up PhpStorm with Xdebug. @@ -39,7 +50,7 @@ In the example above we set the variable to `appserver` and created a path mappi ![screenshot](/images/drush-xdebug-phpstorm.png) -Depending on how you have configured Xdebug to be triggered (xdebug.start_with_request is off by default) +Depending on how you have configured Xdebug to be triggered (xdebug.start_with_request is off by default) you will need to tell Xdebug to start debugging the request. You can do this by either setting that global option or by setting the following environment variable before running your request: @@ -72,6 +83,3 @@ tooling: - echo "Xdebug disabled" user: root ``` - - - diff --git a/guides/lando-with-vscode.md b/guides/lando-with-vscode.md index 34f6f4a..e51d36b 100644 --- a/guides/lando-with-vscode.md +++ b/guides/lando-with-vscode.md @@ -1,12 +1,24 @@ --- +title: Using Lando with VSCode description: Learn how to configure xdebug in Lando using VSCode. -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# Using Lando with VSCode - - - [Visual Studio Code](https://github.com/Microsoft/vscode/) is a great open source editor for programming. Debugging PHP applications with it can be easy too. This is a basic setup to help you in this task. @@ -272,6 +284,3 @@ This is how you can open a specific port on a Debian/Ubuntu: * [Original Gist with settings for XDebug in VSCode](https://gist.github.com/MatthieuScarset/0c3860def9ff1f0b84e32f618c740655) * [PHP programming in VSCode](https://code.visualstudio.com/docs/languages/php) - - - diff --git a/guides/macos-pantheon-no-proxy.md b/guides/macos-pantheon-no-proxy.md deleted file mode 100644 index 1d5580f..0000000 --- a/guides/macos-pantheon-no-proxy.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -date: 2019-11-05 ---- - -# How to set up a Pantheon application without a proxy on macOS 10.12+ - - - -This guide explains how to use a pantheon [lando](https://github.com/lando/lando) application without the proxy server on your local machine. Instead of using a proxy server, you will use `dnsmasq` and `pfctl` to port forward your lando application's webserver ports to 80 and 443. - -> **Note:** you will have to perform some manual interactions for each lando application you create. See the instructions below. - -1. First, install [homebrew](https://brew.sh) -2. Then, install and setup dnsmasq with homebrew: - - ``` - brew install dnsmasq - echo 'address=/.lndo.site/127.0.0.1' > $(brew --prefix)/etc/dnsmasq.conf - echo 'listen-address=127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.conf - echo 'port=35353' >> $(brew --prefix)/etc/dnsmasq.conf - brew services start dnsmasq - ``` - -3. While dnsmasq is running, configure macOS to use your local host for DNS queries ending in `.lndo.site` - - ``` - sudo mkdir -v /etc/resolver - sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev' - sudo bash -c 'echo "port 35353" >> /etc/resolver/dev' - ``` - -4. Disable lando's proxy in your local config file. - - ``` - touch ~/.lando/config.yml - echo "proxy: OFF" >> ~/.lando/config.yml - ``` - -5. [Set up your app with lando](https://docs.devwithlando.io/tutorials/basics.html). Make sure your application is stopped before proceeding. -6. Start your application using `lando start`. -7. In terminal, run the following command all at once: - - ``` - sudo bash -c 'export TAB=$'"'"'\t'"'"' - cat > /Library/LaunchDaemons/co.jakebellacera.httpdfwd.plist < - - - - ${TAB}Label - ${TAB}co.lando.httpdfwd - ${TAB}ProgramArguments - ${TAB} - ${TAB}${TAB}sh - ${TAB}${TAB}-c - ${TAB}${TAB}echo "rdr pass proto tcp from any to any port {80,32787} -> 127.0.0.1 port 32787" | pfctl -a "com.apple/260.HttpFwdFirewall" -Ef - && echo "rdr pass proto tcp from any to any port {443,32788} -> 127.0.0.1 port 32788" | pfctl -a "com.apple/261.HttpFwdFirewall" -Ef - && sysctl -w net.inet.ip.forwarding=1 - ${TAB} - ${TAB}RunAtLoad - ${TAB} - ${TAB}UserName - ${TAB}root - - - EOF' - sudo launchctl load -Fw /Library/LaunchDaemons/co.lando.httpdfwd.plist - ``` - - > **NOTE:** this assumes your pantheon app's edge servers are assigned to the following ports: 32787 (http) and 32788 (https). In testing, these seemed to be the default ports that are assigned to pantheon applications. If you see different ports, or are not using a pantheon application configuration, then you may need to adjust the ports in the code snippet above. - -8. In your /etc/hosts file, add an entry for your application's host name at localhost. - - ``` - 127.0.0.1 example.lndo.site - ``` - - > **NOTE:** replace "example" in the hostname with the name of your application. - -9. Finally, you should be able to access your application by the hostname you added to your /etc/hosts file in the step above without any ports. If you are having trouble, try turning off and on your wifi or reboot your machine so that your /etc/resolver settings are applied successfully. - - - diff --git a/guides/offline-dev.md b/guides/offline-dev.md index 7ced396..671dffc 100644 --- a/guides/offline-dev.md +++ b/guides/offline-dev.md @@ -1,12 +1,26 @@ --- +title: Developing offline description: Learn how to use Lando for offline local development. -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- # Developing offline - - Out of the box Lando uses an actual on-the-internet wildcard domain at `*.lndo.site` to route your domain names back to your localhost to provide convenient proxying. This method is minimally invasive and doesn't require Lando to alter your machine's DNS routing. This has the downside of requiring an internet connection to access your sites. However, you may want the freedom of hacking away on your site while scaling Everest or just to simply route your projects to a different wildcard domain, like `*.local.dev`, `*.seriously.hanshotfirst` or `*.my.test`. Note that we **DO NOT** recommend you use a _true_ top-level domain such as `*.test`. You can read more about why in our [security](./../config/security.md) documentation. @@ -70,6 +84,3 @@ Here are some vitals: 13. Load it up in the browser and confirm everything is happy and working. Enjoy your signature domain while you hack away in complete wifi-less splendor. - - - diff --git a/guides/overriding-a-service-version.md b/guides/overriding-a-service-version.md index 915c129..49cb353 100644 --- a/guides/overriding-a-service-version.md +++ b/guides/overriding-a-service-version.md @@ -1,33 +1,24 @@ --- title: Overriding a Service Version or Image -metaTitle: Overriding a Service Version | Lando description: Modify the underlying Docker images used by your Lando services so that you can custom tailor the container environment for your apps! -summary: Modify the underling Docker images used by your Lando services so that you can custom tailor the container environment for your apps! -date: 2020-03-19T19:59:04.806Z -original: -repo: - -author: - name: Dustin LeBlanc - pic: https://www.gravatar.com/avatar/e61caccbbfd817bc8b52c0395ba888a6 - link: https://twitter.com/DustinLeblanc - -feed: - enable: true - author: - - name: Dustin LeBlanc - email: alliance@lando.dev - link: https://twitter.com/DustinLeblanc - contributor: - - name: Dustin LeBlanc - email: alliance@lando.dev - link: https://twitter.com/DustinLeblanc +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# Overriding a Service Version - - - The Docker images Lando uses for services are well optimized for local development, but occasionally you need to override those images with some of your own secret sauce. Lando makes this easy to do through the services `overrides` key: @@ -70,5 +61,3 @@ services: overrides: image: myamazingorg/fancyappserver:latest ``` - - diff --git a/guides/phpmyadmin-themes.md b/guides/phpmyadmin-themes.md deleted file mode 100644 index e778e5e..0000000 --- a/guides/phpmyadmin-themes.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: Using a custom PhpMyAdmin 4.x theme in Lando -description: Learn how to load a custom PhpMyAdmin 4.x theme into Lando -summary: Learn how to load a custom PhpMyAdmin 4.x theme into Lando -date: 2020-03-30T19:23:00.720Z -original: -repo: https://github.com/lando/cli/tree/main/examples/pma - -author: - name: Jace Bennest - pic: https://avatars0.githubusercontent.com/u/6412919?s=460&u=b96d856896743523cec75bad1d9aec42a7f8a25e&v=4 - link: https://twitter.com/thejacer87 - -feed: - enable: true - author: - - name: Jace Bennest - email: alliance@lando.dev - link: https://twitter.com/thejacer87 - contributor: - - name: Jace Bennest - email: alliance@lando.dev - link: https://twitter.com/thejacer87 ---- - -# Add Themes to phpMyAdmin 4.x - - - - -[phpMyAdmin](https://www.phpmyadmin.net/) is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. See the [lando docs](https://docs.devwithlando.io/tutorials/phpmyadmin.html) regarding phpMyAdmin for help enabling the service. - -:::warning Only for PhpMyAdmin 4.x -Note that this guide is only applicable to the 4.x branch of PhpMyAdmin. You'll want to consult the docs for how to do this in 5.x -::: - -This is a basic setup to help you enable extra themes. - -## Getting Started - -Add the build script to your Lando recipe where you should have the phpMyAdmin service already. - -```yaml -services: - pma: - type: phpmyadmin:4.7 - build_as_root: - - chmod +x /app/.lando/pma-theme.sh - - /app/.lando/pma-theme.sh -``` - -## Create script to download and install the third-party theme - -Create the custom `pma-theme.sh` file. - -```bash -touch .lando/pma-theme.sh -vim .lando/pma-theme.sh -``` - -The location of this file is arbitrary. We placed it inside `.lando/` folder simply because we find it convenient. - -```bash -#!/bin/sh -if [ ! -z $LANDO_MOUNT ]; then - wget https://files.phpmyadmin.net/themes/pmaterial/1.1/pmaterial-1.1.zip - unzip pmaterial-1.1.zip -d /www/themes/ - rm pmaterial-1.1.zip -fi -``` - -Checkout the available themes [here](https://www.phpmyadmin.net/themes/). Make sure you choose a theme compatible with your version of phpMyAdmin. Modify the script according to the theme you want. - -## Set new theme as the default - -Review the [phpMyAdmin docs](https://docs.devwithlando.io/tutorials/phpmyadmin.html#using-custom-phpmyadmin-config-file) to see how to hook up your config file. - -Add this line to your config: - -```php - - diff --git a/guides/setup-lando-on-windows-with-wsl-2.md b/guides/setup-lando-on-windows-with-wsl-2.md index 2c7df1d..6ce2268 100644 --- a/guides/setup-lando-on-windows-with-wsl-2.md +++ b/guides/setup-lando-on-windows-with-wsl-2.md @@ -1,34 +1,24 @@ --- title: Setup Lando on Windows with WSL2 -metaTitle: Setup Lando on Windows with WSL2 | Lando description: Configure Lando to run on your Windows WSL2 system for better performance when developing on Windows. -summary: Configure Lando to run on your Windows WSL2 system for better performance when developing on Windows. -date: 2021-01-19T14:21:27.061Z -original: -repo: - -author: - name: Dustin LeBlanc - pic: https://www.gravatar.com/avatar/e61caccbbfd817bc8b52c0395ba888a6 - link: https://twitter.com/DustinLeblanc - -feed: - enable: true - author: - - name: Dustin LeBlanc - email: dustin@dustinleblanc.com - link: https://twitter.com/DustinLeblanc - contributor: - - name: Dustin LeBlanc - email: alliance@lando.dev - link: https://twitter.com/DustinLeblanc +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- -# Setup Lando on Windows with WSL2 - - - - Developing on Windows used to cause web developers agony and pain, but with the introduction of WSL, this is no longer quite so. WSL2 provides a near-native Linux experience for developing web applications on Windows computers. Longtime Mac or Windows Lando users will be familiar with the performance difficulties associated with file system access when using Docker in a non-linux host environment. Traditionally, running Docker on Mac or Windows requires a virtual machine environment. Sharing files across the boundary between your native OS and the Linux OS running within this virtual environment creates significant performance issues. @@ -70,6 +60,3 @@ You'll want to do all of your shell activity from within the WSL system, and you ## Some caveats Performance is generally very good with this approach, however, stability can at times leave something to be be desired. Occassional freezes under heavy load are fairly commonplace, and seem to be resolved by rebooting the system. All things considered, the reduction in CPU load, battery drain, and the accompanied increase in the speed of every single action you take (accessing site pages, running any CLI commands) more than outweighs the disruption of these occasional issues for most users. Hopefully stability will continue to increase with time. - - - diff --git a/guides/updating-local-pantheon-environments.md b/guides/updating-local-pantheon-environments.md deleted file mode 100644 index 4d3184e..0000000 --- a/guides/updating-local-pantheon-environments.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Updating your Pantheon site from the latest DB backup -metaTitle: Updating your Pantheon site from the latest DB backup | Lando -description: Add this tool to catch your local dev environment up to date. -summary: Add this tool to catch your local dev environment up to date. -date: 2020-03-03T21:14:32.815Z -original: -repo: - -author: - name: Jason Purdy - pic: https://www.gravatar.com/avatar/cb8c34b202e121d059c955433511f0b9 - link: https://twitter.com/jason_purdy - -feed: - enable: true - author: - - name: Jason Purdy - email: alliance@lando.dev - link: https://twitter.com/jason_purdy - contributor: - - name: Jason Purdy - email: alliance@lando.dev - link: https://twitter.com/jason_purdy ---- - -# Updating your Pantheon site from the latest DB backup - - - - -I can't claim credit for this, but I wanted to share a really powerful and useful addition we add to our .lando.yml files in the tooling section. It should be said that this particular use case works for Drupal and Pantheon users. - -```yaml -tooling: - latest: - service: appserver - description: Updates the database from the latest backup - cmd: - - mkdir -p /app/artifacts - - rm -f /app/artifacts/database.sql.gz - - terminus backup:get site.env --element=db --to=/app/artifacts/database.sql.gz - - database: cd /app && /helpers/sql-import.sh artifacts/database.sql.gz - - drush cc all && drush en devel stage_file_proxy -y && drush sql-sanitize --sanitize-password="1234" --yes -``` - -For Drupal 8, we setup [config split](https://www.drupal.org/project/config_split) to handle separate development configurations, so our last line looks something like this: - -```yaml -- cd /app/web && drush cr && drush sql-sanitize --sanitize-password="1234" --yes && drush cr && drush config-split:import config_dev -y -``` - -Once you add this, then you can type `lando latest` whenever you want to refresh your local environment to bring it up to date with the latest database backup. - -The first time you run this, you may run into an issue where your environment cannot download the backup because you need to authenticate it with Pantheon. Basically, [create a machine token](https://dashboard.pantheon.io/machine-token/create) and then type `lando terminus auth:login --machine-token=[TOKEN]`. You may have multiple Drupal/Pantheon environments and you will need to authenticate each one, but you only need to do that once, even if you restart/rebuild the app. - - You could still use this for non-Pantheon cases, but you'll have to change the terminus command to something that grabs your latest database backup and copies it into the `artifacts` folder. - - You'll also want to add the `artifacts` folder to your `.gitignore` file so you don't commit any database backups. - - - diff --git a/guides/updating-to-rc2.md b/guides/updating-to-rc2.md index a4b6dcd..922c77d 100644 --- a/guides/updating-to-rc2.md +++ b/guides/updating-to-rc2.md @@ -1,12 +1,26 @@ --- +title: Updating to 3.0.0-rc.2+ description: Learn how to update Lando from beta to rc and beyond. -date: 2019-11-05 +guide: true + +authors: + - name: Team Lando + pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd + link: https://twitter.com/devwithlando +updated: + timestamp: 1594391902000 + +mailchimp: + # action is required + action: https://dev.us12.list-manage.com/subscribe/post?u=59874b4d6910fa65e724a4648&id=613837077f + # everything else is optional + title: Want similar content? + byline: Signup and we will send you a weekly blog digest of similar content to keep you satiated. + button: Sign me up! --- # Updating to 3.0.0-rc.2+ - - Before you begin here we *highly recommend* you check out the [RC2 Release Blog Post](https://thinktandem.io/blog/2019/02/01/lando-is-ready-for-the-masses-with-rc2-release/) to get a higher level understanding on whats changed and why its changed in `3.0.0-rc.2`. After that you should be ready to get into the nitty gritty of what has changed. **This guide is for people upgrading from `3.0.0-rc.1` or lower**. @@ -633,6 +647,3 @@ If you have written your own custom plugins 2. Once you see the new format you'll feel better :) We've finally locked down a [Plugin System](https://docs.lando.dev/contrib/contrib-plugins.html) that uses the [Lando](./../api/lando.md) and [App](./../api/app.md) APIs and while we still don't have a great way to manage the installation and management of these plugins it is going to be the defining feature of `3.1.0`. - - - diff --git a/guides/using-compass-on-a-lando-node-service.md b/guides/using-compass-on-a-lando-node-service.md deleted file mode 100644 index e7085ea..0000000 --- a/guides/using-compass-on-a-lando-node-service.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Using Compass on a Lando Node Service -metaTitle: Using Compass on a Lando Node Service | Lando -description: Learn how to use legacy compass sass builds for your Lando frontend node build -summary: Learn how to use legacy compass sass builds for your Lando frontend node build -date: 2020-05-13T01:27:44.387Z -original: -repo: - -author: - name: Team Lando - pic: https://gravatar.com/avatar/c335f31e62b453f747f39a84240b3bbd - link: https://twitter.com/devwithlando - -feed: - enable: true - author: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando - contributor: - - name: Team Lando - email: alliance@lando.dev - link: https://twitter.com/devwithlando ---- - -# Using Compass on a Lando Node Service - - - - -Some older `node` based frontend build steps rely on `ruby` and `compass`. If you have such a flow we _highly recommend_ you escape dependency hell and migrate your `sass` build steps to use `node-sass` which is _way_ faster. - -However, if you cannot do this you may run into some issues running `compass` inside of your `node` container since this pattern is fundamentally at odds with Lando's one-thing-per-container model. - -You can, however, get around it by installing `ruby` and `compose` directly in the `node` service that requires them. - -Below is an example that installs `ruby` and `compass` using [build-steps](./../config/services.md#build-steps). - -```yaml -services: - myservice: - type: node:12 - build_as_root: - - apt-get update -y - - apt-get install ruby-full -y - - gem install compass -tooling: - ruby: - service: myservice - compass: - service: myservice -``` - -You can verify with: - -```bash -lando ruby -v -lando compass -v -``` - -You should now be able to run any build steps that require `ruby` and `compass` as in this example: - -```yaml -services: - myservice: - type: node:12 - globals: - grunt-cli: latest - build_as_root: - - apt-get update -y - - apt-get install ruby-full -y - - gem install compass - build: - - grunt build:sass -tooling: - ruby: - service: myservice - compass: - service: myservice -``` - - - diff --git a/help/switching-dbs.md b/help/switching-dbs.md index 746a974..13306ae 100644 --- a/help/switching-dbs.md +++ b/help/switching-dbs.md @@ -2,7 +2,7 @@ description: Understand hiccups, caveats or issues switching databases when using Lando for local development. --- -## Switching Database Configuration +# Switching Database Configuration If you are currently using a database with Lando and you decide to change its type, version or credentials in your `.lando.yml` file *it's possible* that your database service will not restart correctly or with the expected values once you've made the change. diff --git a/help/wkbox.md b/help/wkbox.md index 33d9756..c4de193 100644 --- a/help/wkbox.md +++ b/help/wkbox.md @@ -2,7 +2,7 @@ description: Learn about using Lando with Kalabox. --- -## Using Lando with Kalabox +# Using Lando with Kalabox While Lando is in many ways the successor project to Kalabox it is actually a completely different project that can run side by side with a users existing Kalabox... with a few caveats. diff --git a/netlify.toml b/netlify.toml index db30266..9aab350 100644 --- a/netlify.toml +++ b/netlify.toml @@ -23,7 +23,6 @@ # REDIRECTS # NOTE THAT REDIRECTS ARE EXECUTED FIRST COME FIRST SERVE - # Domain redirects [[redirects]] from = "https://docs.lndo.io/*" @@ -34,47 +33,160 @@ to = "https://docs.lando.dev/:splat" status = 301 -# Legacy redirects from cloudflare +# Redirect legacy 3.x content [[redirects]] - from = "https://docs.lando.dev/contrib/how.html" - to = "https://docs.lando.dev/contrib/contributing.html" + from = "https://docs.lando.dev/basics/usage.html" + to = "https://docs.lando.dev/cli" status = 301 [[redirects]] - from = "https://docs.lando.dev/issues/*" - to = "https://docs.lando.dev/help/:splat" + from = "https://docs.lando.dev/basics/config.html" + to = "https://docs.lando.dev/cli/config.html" status = 301 [[redirects]] - from = "https://docs.lando.dev/tutorials/*" - to = "https://docs.lando.dev/config/:splat" + from = "https://docs.lando.dev/basics/destroy.html" + to = "https://docs.lando.dev/cli/destroy.html" status = 301 [[redirects]] - from = "https://docs.lando.dev/dev/*" - to = "https://docs.lando.dev/contrib/:splat" + from = "https://docs.lando.dev/basics/init.html" + to = "https://docs.lando.dev/cli/init.html" status = 301 [[redirects]] - from = "https://docs.lando.dev/started.html" - to = "https://docs.lando.dev/basics/" + from = "https://docs.lando.dev/basics/info.html" + to = "https://docs.lando.dev/cli/info.html" status = 301 [[redirects]] - from = "https://docs.lando.dev/installation/*" - to = "https://docs.lando.dev/basics/installation.html" + from = "https://docs.lando.dev/basics/list.html" + to = "https://docs.lando.dev/cli/list.html" status = 301 [[redirects]] - from = "https://docs.lando.dev/cli/*" - to = "https://docs.lando.dev/basics/:splat" + from = "https://docs.lando.dev/basics/logs.html" + to = "https://docs.lando.dev/cli/logs.html" status = 301 [[redirects]] - from = "https://docs.lando.dev/troubleshooting/*" - to = "https://docs.devwithlando.io/help/:splat" + from = "https://docs.lando.dev/basics/poweroff.html" + to = "https://docs.lando.dev/cli/poweroff.html" status = 301 [[redirects]] - from = "https://docs.lando.dev/config/config.html" - to = "https://docs.lando.dev/config/global.html" + from = "https://docs.lando.dev/basics/rebuild.html" + to = "https://docs.lando.dev/cli/rebuild.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/restart.html" + to = "https://docs.lando.dev/cli/restart.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/share.html" + to = "https://docs.lando.dev/cli/share.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/start.html" + to = "https://docs.lando.dev/cli/start.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/stop.html" + to = "https://docs.lando.dev/cli/stop.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/version.html" + to = "https://docs.lando.dev/cli/version.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/ssh.html" + to = "https://docs.lando.dev/cli/ssh.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/basics.html" + to = "https://docs.lando.dev/getting-started/what-it-do.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/basics/*" + to = "https://docs.lando.dev/getting-started/:splat" + status = 301 + +[[redirects]] + from = "https://docs.lando.dev/contrib/contributing.html" + to = "https://docs.lando.dev/contrib" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/contrib/talking-points.html" + to = "https://docs.lando.dev/contrib/evangelist.html#talking-points" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/contrib/triage-getting-started.html" + to = "https://docs.lando.dev/contrib/coder.html#triaging-issues" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/contrib/contrib-*" + to = "https://docs.lando.dev/contrib/coder.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/contrib/evangelist-*" + to = "https://docs.lando.dev/contrib/evangelist.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/contrib/sponsor-*" + to = "https://docs.lando.dev/contrib/sponsoring.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/contrib/*" + to = "https://docs.lando.dev/contrib" status = 301 -# Redirect legacy content -# +[[redirects]] + from = "https://docs.lando.dev/guides/drupal-7-landoize-an-extant-app.html" + to = "https://docs.lando.dev/drupal/landoify-d7.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/drupal-multisite-on-lando.html" + to = "https://docs.lando.dev/drupal/drupal-multisite.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/frontend.html" + to = "https://docs.lando.dev/node/frontend-tooling.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/how-to-wire-up-browsersync-and-gulp-in-my-lando-app.html" + to = "https://docs.lando.dev/node/using-browsersync.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/using-compass-on-a-lando-node-service.html" + to = "https://docs.lando.dev/node/using-compass.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/how-can-i-pull-sync-my-database-on-lamp-y-recipes.html" + to = "https://docs.lando.dev/laravel/import-remote-db-laravel-envoy.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/installing-node-in-your-lando-php-service.html" + to = "https://docs.lando.dev/php/installing-node.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/installing-php-extensions-on-lando.html" + to = "https://docs.lando.dev/php/installing-extensions.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/accessing-php-logs.html" + to = "https://docs.lando.dev/php/accessing-logs.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/updating-local-pantheon-environments.html" + to = "https://docs.lando.dev/pantheon/updating-local-pantheon-environments.html" + status = 301 + +[[redirects]] + from = "https://docs.lando.dev/guides/phpmyadmin-themes.html" + to = "https://docs.lando.dev/phpmyadmin/phpmyadmin-themes.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/guides/lando-101/*" + to = "https://docs.lando.dev/lando-101/:splat" + status = 301 + + + + +# Redirect legacy recipes/services [[redirects]] from = "https://docs.lando.dev/config/acquia.html" to = "https://docs.lando.dev/acquia" @@ -228,6 +340,39 @@ to = "https://docs.lando.dev/wordpress" status = 301 +# Legacy redirects from cloudflare +[[redirects]] + from = "https://docs.lando.dev/contrib/how.html" + to = "https://docs.lando.dev/contrib/contributing.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/issues/*" + to = "https://docs.lando.dev/help/:splat" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/tutorials/*" + to = "https://docs.lando.dev/config/:splat" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/dev/*" + to = "https://docs.lando.dev/contrib/:splat" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/started.html" + to = "https://docs.lando.dev/basics/" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/installation/*" + to = "https://docs.lando.dev/basics/installation.html" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/troubleshooting/*" + to = "https://docs.devwithlando.io/help/:splat" + status = 301 +[[redirects]] + from = "https://docs.lando.dev/config/config.html" + to = "https://docs.lando.dev/config/global.html" + status = 301 # REWRITES # Stitch together the various plugin subsites diff --git a/package.json b/package.json index fb198c4..d3ca615 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@lando/docs", "description": "Lando Docs Repo.", - "version": "0.1.2", + "version": "3.1.2", "author": "John Ouellet @labboy0276", "license": "GPL-3.0", "repository": "lando/docs",