jonaswah, I always run my own docker invocation (docker build . --build-arg NCORES=9 --build-arg TARGETS="html inbox-html") to avoid building PDFs
jcbrandok
jonaswlocally building the PDFs takes long and doesn’t bring any value; if there’s a syntax error or something, you’ll notice with the HTML build
jcbrandI see the pdfs take long
jonaswyeah
jonaswand for a quick local test, a waste of time
jonaswthe PDFs are in a bad shape in any case
jonasw(somebody should probably start to make a huge cleanup, but I don’t see that happening any time soon :))
jcbrandI want to add a Makefile recipe then to only build docker with HTML
jonaswthat sounds reasoanble
jcbrandan additional one
jonaswso I think we have two PRs which we could process, those by @sco0ter on github (#580 and #582)
jcbrandlooks
jcbrandjonasw: BTW, while I'm thinking of it... I have a question for you
jonaswfeel free
jcbrandwhen doing triaging... some tickets get the tag "ready to merge"
jcbrandwhy do that instead of just merging? I guess to answer my own question, because after merging you need to generate the HTML and PDFs and send out emails?
jonaswyeah
jonaswI like to batch things up
jcbrandok
jonaswI can do triaging during a five minute break
jcbrandjonasw: looks like I might need docker credentials?
jcbrand`docker: Error response from daemon: pull access denied for xmpp-org/extensions, repository does not exist or may require 'docker login'`
jonaswwhat
jonaswI don’t think that you do
jonaswI’m pretty sure that’s public
jcbrandI got that when I ran 'make testdocker'
jonaswah
jonaswthat’s because my home-brew docker-command doesn’t have the -t xmpp-org/extensions argument
jonaswif you replace "xmpp-org/extensions" in the testdocker invocation with the image ID from the build ("Successfully built somehexstring"), it should work
jcbrandah, then I'll just add "-t xmpp-org/extensions" rather
jonaswyah
jonaswprobably makes sense
jcbrandI'm adding it to the Makefile
jonaswcool :)
jcbrandOk, looking at #580
jonaswdid you read the README I wrote?
jcbrandYes
jonaswsweet
jcbrandbut that was quite a while ago
jcbrandI do sometimes refer back to it when looking at the PRs
jonaswso, this will be very convenient to keep in mind specifically: https://github.com/xsf/xeps#general-notes-on-making-changes
jonaswbecause this xeplist.xml is the most important thing for all the automation I wrote
jonaswit is crucial that the "old-xeplist.xml" refers to the last pushed state
jonaswso before doing anything, do make build/xeplist.xml && cp build/xeplist.xml tools/old-xeplist.xml
jcbrandok, just before I do that...
jcbrandI have now docker running
jcbrandBut it just gives me Nginx's default message
jonaswyeah, you need to go to /extensions/ manually
jcbrandok
jonaswyou’ll get a directory listing there
jcbrandhmm
jcbrandah
jcbrandok cool, so that's working
jcbrandI'll build the xeplist
jcbrandok done
jonaswcool
jonaswso now you can either make a new branch (which I’d recommend) or work on top of master
jonaswmaking a new branch makes it easy to throw away stuff when you messed something up
jcbrandok, I'll make a new branch
jcbrandDo you merge into the new branch or into master and then make the branch?
jonaswand now the cool magic: you can use
git pull origin pull/580/head
to pull the changes from #580
jcbrandok ya
jonaswnew branch and then merge
jcbrandok and for #582 as well?
jonaswI’d handle them separately at first
jonaswso for 580, I’m not sure if we want a version block or not
jonaswfor now, let’s do one, because it’s a good exercise to do
jcbrandversion block?
jonaswyeah, revision block
jonaswsomething like this I’d suggest for #580 (so in xep-0174):
<revision>
<version>2.0.1</version>
<date>2018-02-08</date>
<initials>cs (XEP Editor: jc)</initials>
<remark><p>Fix incorrect STARTTLS examples.</p></remark>
</revision>
jonasw(right below &stpeter;)
jonaswyou may adapt the wording and your initials at will of course
jonaswI’m not sure if we even should have the "(XEP Editor: xyz)" thing, because git has that information too, in most cases, and it isn’t really useful.
jonaswfeel free to omit
jcbrandI was just wondering about that
jcbrandwill remove
jonaswonce you’ve added that block, make a commit; run make build/xeplist.xml to see if it’? happy with it
jonaswonce you’ve added that block, make a commit; run make build/xeplist.xml to see if it’s happy with it
jcbrandNo output, so I assume it's happy?
jonaswthat’s a good assumption
jcbrandxeplist.xml looks ok
jonaswgreat!
jcbranddo you test the HTML then via docker?
jonaswyes
jonaswyou can also build the HTML files with make
jonaswin fact, you’ll have to do that to put the files into the attic
jonasw(or rather: tools/archive.py will do that for you)
jonaswwe could try that right away actually
jonaswdid you clone xep-attic next to the xeps repository (i.e.: assuming you have an directory "editor", xep-attic would be at "editor/xep-attic" and xeps would be at "editor/xeps")?
jcbrandyes
jcbrandI have that
jcbrandso `make html`?
jonaswyou can just run: ./tools/archive.py tools/old-xeplist.xml build/xeplist.xml
jonaswit will do a few things: 1. list which XEPs have changed between the two xeplist files you passed there; 2. invoke make build/xep-xyz.html for those; 3. copy the resulting HTML files into the ../xep-attic/content/ directory
jcbrandyeah, so there's a new HTML file in the attic now
jonasw\o/
jcbrandcontent/xep-0174-2.0.1.html
jonaswups
jonaswfine :)
jcbrandyou thought something was wrong?
jonaswI thought I pasted that :D
jonaswgreat, so you can now merge your branch into master, but don’t push yet.
jonasw(if you’ve commited the revision block to git yet)
jonaswand you can repeat the same process for #582
jcbrandok, will do
jcbrandI didn't know this trick of pulling in pull requests
jonaswyeah, I learnt that a few weeks ago in some XMPP-related MUC
jonaswbefore I always puzzled together the URLs manually (https://github.com/$prauthor/xeps $branchname), which didn’t always work
jonaswI always had to guess whether Flows fork of the repository was called xeps-xsf or xsf-xeps and I always got it wrong on the first attempt ;-)
jcbrandShould I again make a revision block?
jonaswyeah, for this one definitely
jonaswit touches on registar issues
jcbrandok
jonaswstill only a patch revision though, because it doesn’t change normative language or intent in any way
jcbrandI guess when in doubt, rather make it
jonasw(it’s technically an oversight in editor work, we should’ve made sure that everything was coherent)
jonaswyeah
jonasweven though, there’s an argument against that (because revision blocks essentially determine when a XEP will be deferred; so when doing editorial things on Experimental XEPs, one might to skip that; or maybe we need to re-define when deferral kicks in, I dunno)
jcbrandok
jcbrandso... 1.15.1 then?
jonaswyupp
jcbrandoh, I should have copied over the old xeplist again
jonaswno it’s fine
jonaswall operations except sending email are idempotent
jonaswin fact, do not copy it over until you have sent the emails
jonasw(because the email sending also uses the xeplists)
jonasw(unless you want to do it manually, which I would definitely not recommend ;-)
jcbrandSo you run `make build/xeplist.xml && cp build/xeplist.xml tools/old-xeplist.xml` once before merging PRs?
jonaswyeah
jonaswafter a git pull that is
jonasw(in case somebody else did some work inbetween)
jcbrandok
jcbrandI notice in the readme you have a different order, you mention sending out emails before copying over to the xeplist
jonaswokay, maybe I wasn’t clear, let me try again. the coarse workflow is:
- sit down to do editor work
- do the git pull && make build/xeplist.xml && cp build/xeplist.xml tools/old-xeplist.xml
- start making branches and merging PRs; merge branches back to master
- run tools/archive.py […]
- run tools/send-updates.py […]
jonaswokay, maybe I wasn’t clear, let me try again. the coarse workflow is:
- sit down to do editor work
- do the git pull && make build/xeplist.xml && cp build/xeplist.xml tools/old-xeplist.xml
- start making branches and merging PRs; merge branches back to master
- git push
- run tools/archive.py […]
- run tools/send-updates.py […]
jonasw+ all the testing in-between to make sure that things are okay
jonaswyou only run make build/xeplist.xml; the cp is never run again until after the send-updates.py
jonasw(if you now accidentally copied over the old-xeplist.xml with some intermediate state, that’s fine, it’s recoverable)
jonasw(also I doubt it’s an issue if we don’t send mails for both)
jcbrandhmm, when I run `./tools/archive.py tools/old-xeplist.xml build/xeplist.xml` it only picks up the change in XEP-0174, not the change in XEP-0060
jcbrandShould I run `make build/xeplist.xml` first?
jonaswyes
jonaswrunning make build/xeplist.xml is always safe
jcbrandok, so diffing with `origin master` looks good
jcbrandI'll push, since you've already mentioned it in the workflow
jonaswah, wait
jcbrandok
jonaswone second please
jonaswI want to test intosis PR first
jonaswand merge that too if needed
jonaswor if possible
jonaswso yeah: merge intosis PR and run docker build . --build-arg NCORES=9 --build-arg TARGETS="refs" to see if it works
jonaswif it does, that’s fine and you can push I think
jonaswah, and there’s one more thing we can do
jonaswlet me know when you’ve handled intosis PR
jonaswhas left
jonaswhas left
jonaswhas joined
jonaswping
jonaswhas left
jonaswhas joined
jcbrandhello
jonaswI think things have settled
jcbrandShall we continue here/
jcbrand?
jonaswmight as well
jonaswokay, so once everything is merged and the last docker build went through, you can run the git push
jonaswwhen the push’s over, you can observe the build here: https://hub.docker.com/r/xmppxsf/xeps/builds/
jonasw(you won’t see output though; only when it switches to error or failed at some point)
jonasw(you won’t see output though; only when it switches to error or failed or success at some point)
jonaswwhile the build is running, you can update the attic with the archive.py tool and commit and push everything in there (git add content/*.xml && git commit && git push)
jonaswwhile the build is running, you can update the attic with the archive.py tool and commit and push everything in there (git add content/*.html && git commit && git push)
jonaswonce that’s done, we’ll prepare the sending of emails
jcbrandThe Makefile recipe I added, can I simply commit and push to master, or do you want to see a PR?
jcbrandjonasw: ^ otherwise done and ready for sending emails
jonaswyou can paste the diff here (from git diff) and I’ll have a quick look
jonaswso regarding sending emails, you’ll have to create a config file; the name is not relevant, I’m using "config.ini":
[smtp]
host=smtp.zombofant.net
user=jonas.wielicki
from=Jonas Wielicki (XSF Editor) <jonas@wielicki.name>
host is the SMTP server to use, user is the login user name and from is the From header for the mail
jonaswI guess you can guess how to adapt that to your setup (I think you’re running your own mail server?)
jcbrandis zombofant.net your SMTP server?
jonaswyes
jcbrandok yeah, I run my own
jonaswsmtp.zombofant.net is the SMTP servre, so if yours is foobar.domain.example, you’d have to write foobar.domain.example, not smtp.foobar.domain.example
jonaswto be clear
jcbrandyes
jonaswso once you’ve set that config up, you can invoke:
./tools/send-updates.py -nc config.ini tools/old-xeplist.xml build/xeplist.xml standards@xmpp.org
the -n is equivalent to --dry-run and will only print the mails, without ever connecting to your server
jonaswyou’ll know when it tries to send email because it’ll ask for your password
jonasw(at this point, if you’re worried, you can of course read the source code of the script :-))
jcbrandis this the email address that's registered on the XSF members list?
jcbrandI have one email on the XSF members list and another for the other lists...
jcbrandnot ideal but ja :)
jonaswyou shoudl be using a mail address which is subscribed to standards@, because that’s where the mails go
jcbrandah standards
jcbrandok
jonaswso invoke the tool as described above to get a view on how the mails which are to be sent will look. you should have three mails (two UPDATED and one DEFERRED)
jcbrandyep, I checked
jcbrandlooks good
jonaswcool
jcbrandso now just running it without -n ?
jonaswyou can then invoke it either without the "n", or even with "y". without "n", it’ll ask for each mail. with "y", it will send all emails without further output & asking
jonaswyour choice :)
jonaswthe standards list is kinda slow (and I think we’re currently having bad internet weather judging by the MUC issues we just had), so it’ll take a few minutes until your mails appear on the list, but I guess you’re used to that already
jcbrandEmails are sent out
jonaswcool
jonaswyou’re done I think :)
jonasweven though
jonaswI realize we should’ve waited until the build was done
jonaswthat’s not a huge issue though
jcbrandah
jonaswbuild’s going to be finished in 60 minutes probably
jcbrandok next tiem
jonaswyeah
jcbrandThanks very much for your help with this
jonaswyou’re welcome
jonaswand still, remember what I wrote: there’s no pressure here. just because I took the time to introduce you, doesn’t mean anybody expects a high level of activity from now on :)
jcbrandthanks. I'll do what and when I can :)
jcbrandI'm glad I bought beer yesterday, now I can celebrate
jonaswha
jcbrandhave a good evening
jonaswsame to you
jonaswbuild has passed, jcbrand.
jonaswlooks good so far :)
jcbrandgood
jonaswyupp, all touched XEPs look as they should :)