jerome.martin.dev
2019-4-1 08:14:23

I made one some times ago. It’s not that good cause I was still learning how to make #langs, but there’s that. https://github.com/euhmeuh/wasm-adventure


greg
2019-4-1 13:38:51

Dear lazy slack: Is anyone using CircleCI to test a package against multiple versions of Racket? I’d love to see your .circleci/config.yml as an example. i.e. the CircleCI equivalent of my Travis CI example (So far I’ve figured out it could use @notjack’s docker images, and, it will use Workflows instead of a Travis CI “matrix”… I think.)


greg
2019-4-1 13:40:01

has been busy and is only now catching up to the news about the engineering layoffs at Travis CI since the private equity acquistion — the “acquifire”


jerome.martin.dev
2019-4-1 16:06:28

@alexknauth Ok so, I tried using syntax-classes, but I don’t see how I can transmit those classes to other modules once they are created. If I put the syntax-bound variable containing my class inside my metadata container, then give that to another expander somewhere in another module, how can the expander use that class as if it was declared here? In other words, my children parsers are going to need a lot of classes from their ancestors, but won’t have them in scope.


jerome.martin.dev
2019-4-1 16:10:58

I guess one way would be to change actor-out so that it also provides all the classes defined by a define-actor, so that other modules can use them. But I’m wondering whether this simplifies my code or complicates it. Right now I’m just passing that information in a syntax object.


jerome.martin.dev
2019-4-1 16:14:06

I guess I’ll just try that and see… Thanks for the rubberducking.


alexknauth
2019-4-1 16:34:00

Maybe I’m misunderstanding… You shouldn’t always have to provide the syntax classes all the time. Macro hygiene can take care of a lot for you.


greg
2019-4-1 17:37:42

Realizing what I really want is not to write any frakking YAML at all. Instead I want to write a little utility that reads an info.rkt, looks at base #:version to find the oldest supported Racket that needs to be tested. And then writes the .yml for me. And if some CI du jour doesn’t let you parameterize jobs/builds/whatevers, at least I’m not writing that stuff by hand.


greg
2019-4-1 17:39:03

If json is a subset of yaml, maybe this even gets close to a few lines of Racket ending in write-jsexpr.


greg
2019-4-1 17:40:13

Of course, someone needs to figure out the correct tortured YAML required by service X. I tried to for Travis CI. I was hoping someone else could take a turn, this time. :slightly_smiling_face:


greg
2019-4-1 17:40:25

For CircleCI.


d_run
2019-4-1 18:08:03

eventually, when the YAML becomes self-assembling, we will all drown in it. We’re already close


diego
2019-4-1 18:17:09

As someone who recently started using CircleCI (not for Racket though), I can attest to how nice it would be for the YAML to write itself :slightly_smiling_face:


notjack
2019-4-1 18:30:32

@greg Uh oh, does this mean I’m going to end up being the de facto Racket-on-Circle-CI expert?


greg
2019-4-1 18:33:36

@d_run I feared but also admired SkyNet. I did not realize it would be the crushing banality of yaml …


greg
2019-4-1 18:34:13

waves at @notjack and polishes the baton in preparation for the hand-off


notjack
2019-4-1 18:34:55

desperately looks for an escape route as the baton inches ever closer to my hesitantly outstretched hand


greg
2019-4-1 18:35:26

Seriously, this picket fence will be so fun to whitewash. Think about it, you can make a #lang stupid-ci. Everyone will respect and love you.


notjack
2019-4-1 18:38:42

The siren song of Open Source Fame


greg
2019-4-1 18:39:21

flips through Engineering Management for Dummies, finds another page


greg
2019-4-1 18:39:44

Well, it’s probably impossible. No one could figure that out. I understand why you’d be reluctant.


notjack
2019-4-1 18:41:17

Dammit now I’m actually thinking about how a CI #lang would work


greg
2019-4-1 18:42:23

Thank you! You won’t regret it!! :slightly_smiling_face:


greg
2019-4-1 18:42:34

For at least five years.


notjack
2019-4-1 18:43:35

name idea: #lang bikeshed


notjack
2019-4-1 19:00:19

@greg wait, I missed part of your original statement: Travis CI was acquired and might be going away?


greg
2019-4-1 19:16:24

Not going away soon, but looks like an acquifire https://news.ycombinator.com/item?id=19218036


notjack
2019-4-1 19:28:09

oh dear


soegaard2
2019-4-1 19:28:52

Do they own a competitor? (I have a hard time comprehending why they might close CI).


tealeg
2019-4-1 19:29:34

Defintely was - loads of people were laid off.


notjack
2019-4-1 19:30:22

they don’t, but they own a lot of other b2b software companies and their business model seems to be “buy existing products that are mostly well established, cease new development, cut costs by only keeping on the people needed for basic maintenance, and monetize the long tail of existing subscriptions”


notjack
2019-4-1 19:30:57

(“they” being Idera, the company that acquired travis)


notjack
2019-4-1 19:32:03

so travis will probably stick around for a long time but it’s unlikely to get new features


soegaard2
2019-4-1 19:34:05

They bought Embarcadero Technologies in 2015 ( Delphi).


greg
2019-4-1 19:46:29

I bet Travis will stick around for at least a few years… for paying customers.


notjack
2019-4-1 19:47:22

ah yeah… no telling what Idera will decide to do with the free open source offering


greg
2019-4-1 19:47:25

If they’re trying to cut expenses as deep as senior engineering staff, I’m not sure why they wouldn’t look at quarterly numbers and say why are we paying to run stuff for free.


greg
2019-4-1 19:47:50

So, I thought I might start looking at another CI thing, before it becomes a fire drill.


greg
2019-4-1 19:49:53

I get why some people don’t like Microsoft acquiring GitHub, but, I don’t fear Microsoft cutting off free GH plans because they’re trying to milk the bottom-line. For the foreseeable future, it’s strategory to Microsoft. To Idera it’s just a cash-flow stream.


soegaard2
2019-4-1 19:51:16

Agree.


notjack
2019-4-1 19:51:34

I’d bet most of the expenses they’re trying to cut are engineer salaries rather than actual machine operating costs, so whether or not they keep the free option going probably depends on how much human effort it takes to keep it running


notjack
2019-4-1 19:52:06

and to provide customer support for it


greg
2019-4-1 19:53:29

I don’t know either. It might not be much dollars to run the servers. But someday rando exec might have indigestion from too many hamberders and suddenly the rest of us are having a fire drill.


notjack
2019-4-1 19:54:37

yup, no accounting for arbitrary executive termination mandates


greg
2019-4-1 19:55:03

bites tongue


notjack
2019-4-1 19:55:27

@greg so, what do you want out of a #lang ci-config?


greg
2019-4-1 19:56:13

As little as possible! Seriously, if I want to do 1 shell command on 10 containers, I feel like that should be max 11 lines to express.


greg
2019-4-1 19:56:20

Maybe it’s not quite that simple.


greg
2019-4-1 19:56:34

But in that spirit. Make simple things easy.


notjack
2019-4-1 19:56:51

do you want something tailored to racket’s concepts, or do you really want something that only deals with shell commands and docker stuff?


greg
2019-4-1 19:57:02

I don’t understand why CI services aren’t just run-the-thing.sh, why it needs to be wrapped in so much ceremony.


greg
2019-4-1 19:57:33

Oh, yeah, I guess what I said just now, is generic and not Racket-specific.


notjack
2019-4-1 19:57:37

something something reproducibility something serialization something


greg
2019-4-1 19:57:58

The earlier thing I said, I like, too. That for most Racket packages, the info is in info.rkt.


notjack
2019-4-1 19:58:10

yup


greg
2019-4-1 19:58:22

Not all packages are that simple, but most are.


notjack
2019-4-1 19:58:23

do you want something that explicitly knows about info.rkt and uses that as a source of truth?


greg
2019-4-1 19:59:13

That would be wonderful. As version 0.1. And/or as the easy-button aspect of something that can handle more complicated scenarios.


notjack
2019-4-1 20:01:45

other question: are you fine with the apache 2 license, and (more importantly) are you comfortable with Google being the copyright owner instead of me?


greg
2019-4-1 20:03:33

I mean, I have e.g. racket-mode which needs to test some permutation of X versions of Racket and Y versions of Emacs. But I wouldn’t expect info.rkt => ci.yml to handle that in easy-mode. Or handle it at all. I’m talking about the 90% or 95% case, should be easy.


greg
2019-4-1 20:04:18

I’m fine with either license, just please let me know if Idera will acquire Google ahead of time (so I can do $THINGS in the market). :slightly_smiling_face:


greg
2019-4-1 20:06:27

(I guess what I want, in a hand-wavy way, is for the Racket build server to handle older Racket versions, and have spiffy hooks for Git{Hub Lab}. That would be fine for me and most packages, too. But that’s not reasonable for the Racket team to do.)


notjack
2019-4-1 20:08:57

would you be comfortable making a github repo for this project under your account and adding me as a contributor? (google’s open source process is much simpler to follow for patches to existing projects owned by others than for releasing your own projects)


notjack
2019-4-1 20:09:17

if not, that’s totally understandable


greg
2019-4-1 20:53:06

@notjack Sorry I was away; back now. Yes. I’ll make a repo and add you as a contributor.



jesse
2019-4-2 06:47:49

who here was at Racketfest?