La guia de platanus
  • README
  • Acuerdos
    • Guía de Estilo
      • Ejemplo: Módulo para variables de entorno
  • Stack
    • Getting Started
    • Nuestro MVC extendido
    • Ruby/Rails
      • Power Types
        • General
        • Patrones
          • Commands
          • Utils
          • Services
          • Values
          • Observers
      • Potassium
      • Power API
      • Active Admin
        • General
        • Active Admin Addons
      • Pundit
      • Shrine
        • General
        • Manejo y procesamiento de imágenes
      • Pry
      • Strong Migrations
      • Data Migrate
      • Active Job
      • Gems
      • Engines - Modularización en Rails
    • JavaScript
      • Vue
        • General
        • Testing
      • AlpineJS
    • CSS
    • Mobile
      • Expo
      • React Navigation
      • Redux
        • Crear y conectar una slice en Redux
      • Styling
        • Usando Tailwind en React Native
      • Recursos
    • Resolviendo problemas (debugging)
    • Machine Learning
  • Setup
    • Configuración de tu entorno local
      • Instalación Base
        • OSX
        • Windows
        • Linux
      • Tecnologías
        • Ruby
        • Docker
        • Node
      • Herramientas
        • Linters
        • Editores
          • IDE/Editores de Código
            • Visual Studio Code
            • Sublime Text
        • Git
    • Configuración de proyectos
      • Getting Started
      • Heroku
      • Rails
      • Circle CI
      • Vue
      • Apple App Store
      • Google Play
      • Expo
      • S3
      • Git
      • Cloudflare
      • Sendgrid
      • Dominio + Mailing
      • Google Tag Manager, Analytics, Search Console, etc.
        • Google Tag Manager
          • Configurar Google Tag Manager
        • Google Analytics
        • Indexación en Google
        • Google Ads
      • Crear un bucket de S3
      • SlackBot
      • Google BigQuery
  • Deployment
    • Rails
    • Ruby Gems
    • Browser and Node (Open Source)
    • Mobile
      • Mobile Resources
      • Apple App Storage
      • Google Play
  • Upgrades
    • Upgrade de Vue 2 a Vue 3
    • Migración Hound → reviewdog
    • Upgrade de Postgresql
Con tecnología de GitBook
En esta página
  1. Setup
  2. Configuración de proyectos

Getting Started

AnteriorConfiguración de proyectosSiguienteHeroku

Última actualización hace 1 año

Soy nuev@ y ya tengo asignado mi primer pitch! Qué tengo que hacer para levantar el proyecto y tener todo listo para ponerme a programar?

Esto es lo que queremos responder con esta sección:

  1. Asegúrate de haber revisado la sección de configuración local y que tengas andando tu ambiente con todo instalado (node, ruby, docker, plugins de tu editor, etc).

  2. Clona el repositorio y muevete a la nueva carpeta:

    git clone https://github.com/platanus/<project-name>.git
    cd project-name
  3. Corre bin/setup. Esto te deja instaladas las gemas y paquetes que necesite el proyecto, además de correr el setup de la base de datos. Puedes revisar el archivo para ver qué exactamente se está corriendo

    • A veces puede salir el error Error: remote staging not found in git remotes después de correr bin/setup. Si te aparece, probablemente es porque no tienes acceso al heroku del proyecto. Pídele acceso al encargado del proyecto y cuando lo tengas corre bin/setup_heroku para reintentar el paso que falló

  4. Para no empezar de 0 con una base de datos vacía, los proyectos tienen un Makefile con un par de comandos útiles para traernos datos de staging:

    • Puedes correr make backup-staging para generar un nuevo backup en la base de datos de staging. Esto nos asegura que tengamos los datos más actualizados de staging

    • make restore-from-staging toma el último backup de staging y lo copia en tu base de datos local

  5. Si todo salió bien, con esto deberías estar listo para correr el proyecto. Corre los siguientes comandos en paralelo en pestañas separadas:

    • bin/rails s: levanta el servidor. Si vas a localhost:3000 en el navegador verías la página

    • bin/webpack-dev-server , bin/webpacker-dev-server en proyectos más nuevos, o bin/vite dev en proyector aún más nuevos: permite que cada vez que se guarde un archivo js/vue, se recargue la página automáticamente

      💡 Puedes configurarte un alias para no tener que pensar en cual de los tres comando usar: alias bds="bin/webpack-dev-server || bin/webpacker-dev-server || bin/vite dev"

    • bundle exec guard: cada vez que guardas un archivo ruby se ejecutan los tests correspondientes a ese archivo. Alternativamente, puedes correr todos los tests de manera manual usando bin/rspec

      • Si quieres correr un it, context o describe en particular, ignorando otros archivos y los demás ejemplos en el mismo archivo, puedes agregar una f al comienzo de este. Esto funciona tanto para guard como para rspec. Esto es solo posible gracias a , por lo que debe estar configurado en el proyecto para poder usarlo. Recuerda borrar la f antes de hacer el PR!

    • bin/rails c: abre la consola de rails. En ella puedes probar cosas, por ejemplo, buscar o crear records. Puedes correr cualquier código Ruby/Rails, llamar a modelos/jobs/clients definidos en el proyecto, etc. No es estrictamente necesario, pero puede ser muy útil

💡 Es posible que haciendo el setup te encuentres con un error como el siguiente:

> gyp verb 'which' failed Error: not found: python2

Si te ocurre, puede que tengas `yarn` instalado con `brew`, y en ese caso no se le puede indicar que use `python2`. Para solucionarlo, puedes instalar yarn a través de `npm` corriendo lo siguiente:

```bash
npm config set python /usr/bin/python
brew uninstall yarn
npm install -g yarn
nodenv rehash
```

Ahora, cada vez que quieras levantar o volver a trabajar en el proyecto, puede que tengas que hacer alguna de estas cosas:

  1. Debes asegurarte de tener la DB corriendo. En Platanus tenemos las bases de datos de nuestros proyectos dockeridas. Esto quiere decir que no corre en el postgres que tengas directamente instalado en tu computador, si no que corre en un postgres que está dentro de un container de docker. Para correr el container debes usar el comando docker-compose up -d

    • Este paso no lo tuviste que hacer en el setup inicial explícitamente ya que está incluído dentro de las cosas que hace el bin/setup

  2. Si alguien agregó cambios nuevos a master, es bueno traerlos frecuentemente a tu rama, así se resuelven periódicamente los conflictos que puedan aparecer. Para esto, usa rebase. Corre en tu rama git pull origin master para traerte los últimos cambios, y luego git rebase -i master. Esto te mostrará los commits que has agregado en tu rama y que quedarían sobre los de master. Si se encuentra un conflicto, el rebase para en el commit que lo contiene y te deja corregirlo antes de indicarle que siga

  3. Si alguien más está trabajando en el proyecto, puede que se hayan agregado nuevas gemas o paquetes. Para eso tendrías que correr bundle install y/o yarn install

  4. Si alguien más está trabajando en el proyecto, puede que se hayan agregado nuevas migraciones. Para eso tendrías que correr bundle exec rails db:migrate:with_data. Si quieres saber por qué el with_data puedes ver la sección de:

  5. Si los puntos anteriores no aplican y solo quieres volver a levantar el proyecto, basta con que repitas el paso 5 anterior (bin/rails s, bin/webpack-dev-server y bundle exec guard), no debes correr el bin/setup de nuevo ni nada

Para ver cuáles containers están prendidos, puedes correr docker container ls. Si quieres una alternativa más "visual" puedes usar en OSX

Si hiciste un PR y te pidieron cambios, por lo general aplicamos esos cambios usando rebase. tenemos más info sobre rebase y cómo lo usamos para mantener la historia limpia. También revisa sobre fixup, otra herramienta del rebase que usamos para esto

filter_run_when_matching
Captain
Data Migrate
En este post de nuestro blog
este post