-
setup-new-computer-script
This script will help with the quick setup and installation of tools and applications for new developers at Vendasta.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
https://github.com/geerlingguy/mac-dev-playbook
There's a well loved and maintained ansible playbook for macs.
Just FYI
I did the same with my dotfiles setup, but it's for my personal preferences.
Moreover, I think I have more options to skip particular part / packages while also try to be idempotent as much as it can.
https://github.com/spywhere/dotfiles
Boxen (https://github.com/boxen/puppet-boxen) used Puppet to achieve this. It worked, but it was quite opinionated and of course you needed to know Puppet so the learning curve was steep. It's since been superseded by Homebrew which I find is a far better experience.
Ha, I also have something similar[1], but I use a mix of profiles and flavors. I have two profiles: pkg for installing packages and user for configuring user profiles. Profiles are then broken down further with flavors: dev for development packages, desktop for desktop packages and configurations, and so on.
I found it highly amusing that we're taking similar approaches for a lot of things: a wrapper function for sudo and fetch, and OS detection (especially the appending WSL suffix part). Mine is not as idempotent as yours, and having a per-package definition is still in my TODO list, though.
[1]: https://github.com/sirn/dotfiles
Nice work! I’ve used a similar script for Ruby dev (actually I use it as a reference rather than just running it, but still useful): https://github.com/thoughtbot/laptop
The oldest commits on this script are 11 years old and nothing in the last year, which seems quite stable. At the same time I was able to ask an intern to just run it, and bam! they have everything they need installed.
One use for it that surprised me was hearing a colleague saying that he reinstalls his OS after every change of client and runs the setup script again so there’s no fear of IP theft but also no downtime from having an unconfigured machine.
Mathias Byens' dotfiles repo is a bit like this - https://github.com/mathiasbynens/dotfiles. It's highly opinionated, but I found it extremely useful as a starting point for setting up my own dotfiles. This repo seems simliar to me - the point is the sharing, not necessarily that you'd blindly run it without reading through it.
I made something similar. Whenever I install a new workstation that runs Linux, I run this script:
https://github.com/pkrumins/install-computer/blob/master/ins...
This script installs all packages that I use, links all the dotfiles, all dockerfiles, all services, setups all virtual hosts, and the new workstation is ready to use in 5 minutes. Before it would take weeks to properly set it up as I'd always forget something (missing file or configuration option).
I as well attempted to structure such tasks better with Ansible, https://github.com/rounakdatta/computer.setup. :)
Nice! I was thinking about something like that too. E.g. building symlinks for all the deps into a local directory and use it as PYTHONPATH. I tried it with your example on GitHub and it worked. And then if all the developers are using something like direnv[1] this PYTHONPATH variable could easily be set for everyone.
How do you manage dependencies for the fine-grained Bazel targets (like py_library)? Do you write them manually or using some language-specific tools like Gazelle? If you do use the tool, do you have anything in place to automate it?
Couple years ago I had a pretty bad experience with people complaining about having to execute Gazelle manually. In my ideal world view I'd want to add an import statement in code and just run `bazel build`. So I ended having a wrapper that would run Gazelle before running Bazel all the time, but it slowed thing down quite a bit, because it was doing a lot of unnecessary work.
[1]: https://direnv.net
We currently manage the dependencies manually, although I'm pretty sure work is being done to bring gazelle to rules_python (maybe it's already landed).
For what it's worth, our venv stuff is at https://github.com/cedarai/rules_pyvenv