# Mantener un entorno de desarrollo actualizado

**URL:** <https://meta.discourse.org/t/maintaining-an-up-to-date-development-environment/250744>\
**Category:** Development\
**Created:** [4 Enero, 2023 19:23 UTC](https://meta.discourse.org/t/maintaining-an-up-to-date-development-environment/250744 "2023-01-04T19:23:04Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [5 Enero, 2023 15:50 UTC](https://meta.discourse.org/t/maintaining-an-up-to-date-development-environment/250744/5 "2023-01-05T15:50:34Z")

</div>

> [@Falco](#):
>
> AFAIK casi todo el equipo de desarrollo utiliza un entorno de desarrollo nativo.

¿Hay algún repositorio secreto que utilicen para mantener las cosas actualizadas?

> [@Falco](#):
>
> He estado usando [asdf](https://asdf-vm.com/) para gestionar versiones de las muchas herramientas que utilizo,
> 
> ```plaintext
> 
> ```

¡Gracias! `asdf` es de gran ayuda. Creo que lo había visto antes, pero quería evitar Yet Another Package Manager. Si es lo suficientemente bueno para ti, me apunto.

Y parece que nodejs está desactualizado en el script de instalación también. Una instalación reciente tiene v18.12.1 y el script instala la 16.

Así que parece que

```plaintext
          git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.2
          asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git
          asdf plugin add imagemagick
          asdf install imagemagick 7.1.0-55
          asdf plugin add nodejs
          asdf install nodejs 18.12.1

```

Suponiendo que consigas esto en tu .bashrc (o similar) de alguna manera:

```plaintext
. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash

```

E instalando estas gems:

```plaintext
      - bundler
      - discourse_theme
      - minitar
      - listen
      - rb-fsevent
      - rb-inotify
      - ffi
      - multipart-post
      - tty-prompt
      - pastel
      - tty-color
      - tty-reader
      - tty-screen
      - advancecomp
      - gifsicle
      - jpegoptim
      - libjpeg-progs
      - optipng
      - pngcrush
      - pngquant
      - jhead
      - rails

```

Algunas de ellas podría haberlas añadido por alguna razón distinta a Discourse, aunque no estoy del todo seguro.

Y

```plaintext
apt-get install -y git build-essential libxslt1-dev libcurl4-openssl-dev libksba8 \
libksba-dev libreadline-dev libssl-dev zlib1g-dev libsnappy-dev \
sqlite3 libsqlite3-dev postgresql postgresql-server-dev-all \
postgresql-contrib libpq-dev redis-server golang-go
go get github.com/mailhog/MailHog

```

(Probablemente no en ese orden) Se acerca bastante. El redis actual incluido con ubuntu es suficiente para el 99% de los desarrolladores ~~(es 7.0.7 y no 6.x)~~ ¡Oh! 7.0.7 es ahora lo que se incluye. Pero también hay un plugin `asdf` para redis.

Tal script sería entonces muy fácil de mantener en el núcleo cuando hubiera un cambio de versión en node, imagemagick o Ruby, y luego un desarrollador perezoso podría ejecutar ese script una vez a la semana o con cada nuevo pull y tener un entorno de desarrollo actualizado. Con una hora o tres, alguien ingenioso podría hacerlo lo suficientemente multiplataforma para Linux, Mac/homebrew y Windows/WSL en un par de horas. Afortunadamente, ya no tengo fácil acceso a Windows, así que no me ofrezco voluntario.

Pero creo que si vigilo los cambios en `discourse_docker`, tal vez me dé cuenta de cuándo se actualizan y mis adiciones improvisadas a mi playbook de `newmachine` de Ansible ahora pueden hacer el trabajo.

¡Gracias por el consejo! Creo que ahora puedo tener una configuración de desarrollo en cualquier máquina con un solo comando.

---

_[View the full topic](https://meta.discourse.org/t/maintaining-an-up-to-date-development-environment/250744)._
