XSF Editor Team - 2018-02-08

  1. soul has joined

  2. SamWhited has left

  3. SamWhited has left

  4. jcbrand has joined

  5. jcbrand has left

  6. jcbrand has joined

  7. jcbrand has left

  8. Guus has left

  9. Guus has joined

  10. jcbrand has left

  11. jcbrand has left

  12. Tobi has left

  13. Tobi has joined

  14. jonasw has left

  15. jcbrand has left

  16. jcbrand has joined

  17. jcbrand has left

  18. jcbrand has joined

  19. jcbrand has left

  20. jcbrand has joined

  21. jcbrand has left

  22. jcbrand has joined

  23. jcbrand has left

  24. jcbrand has joined

  25. SamWhited has left

  26. SamWhited has joined

  27. jcbrand has left

  28. jcbrand has joined

  29. Tobi has left

  30. Tobi has left

  31. jcbrand has left

  32. jonasw

    jcbrand: still up for our meeting?

  33. jcbrand

    hi jonasw

  34. jcbrand

    ready when you are

  35. jonasw

    jcbrand: k I need five more mins

  36. jonasw

    here I am!

  37. jcbrand

    jonasw: I'm running `make docker`

  38. jcbrand

    Currently generating pdfs

  39. jonasw

    I don’t even know what that does :D

  40. jonasw

    ah, I always run my own docker invocation (docker build . --build-arg NCORES=9 --build-arg TARGETS="html inbox-html") to avoid building PDFs

  41. jcbrand


  42. jonasw

    locally 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

  43. jcbrand

    I see the pdfs take long

  44. jonasw


  45. jonasw

    and for a quick local test, a waste of time

  46. jonasw

    the PDFs are in a bad shape in any case

  47. jonasw

    (somebody should probably start to make a huge cleanup, but I don’t see that happening any time soon :))

  48. jcbrand

    I want to add a Makefile recipe then to only build docker with HTML

  49. jonasw

    that sounds reasoanble

  50. jcbrand

    an additional one

  51. jonasw

    so I think we have two PRs which we could process, those by @sco0ter on github (#580 and #582)

  52. jcbrand looks

  53. jcbrand

    jonasw: BTW, while I'm thinking of it... I have a question for you

  54. jonasw

    feel free

  55. jcbrand

    when doing triaging... some tickets get the tag "ready to merge"

  56. jcbrand

    why 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?

  57. jonasw


  58. jonasw

    I like to batch things up

  59. jcbrand


  60. jonasw

    I can do triaging during a five minute break

  61. jcbrand

    jonasw: looks like I might need docker credentials?

  62. jcbrand

    `docker: Error response from daemon: pull access denied for xmpp-org/extensions, repository does not exist or may require 'docker login'`

  63. jonasw


  64. jonasw

    I don’t think that you do

  65. jonasw

    I’m pretty sure that’s public

  66. jcbrand

    I got that when I ran 'make testdocker'

  67. jonasw


  68. jonasw

    that’s because my home-brew docker-command doesn’t have the -t xmpp-org/extensions argument

  69. jonasw

    if you replace "xmpp-org/extensions" in the testdocker invocation with the image ID from the build ("Successfully built somehexstring"), it should work

  70. jcbrand

    ah, then I'll just add "-t xmpp-org/extensions" rather

  71. jonasw


  72. jonasw

    probably makes sense

  73. jcbrand

    I'm adding it to the Makefile

  74. jonasw

    cool :)

  75. jcbrand

    Ok, looking at #580

  76. jonasw

    did you read the README I wrote?

  77. jcbrand


  78. jonasw


  79. jcbrand

    but that was quite a while ago

  80. jcbrand

    I do sometimes refer back to it when looking at the PRs

  81. jonasw

    so, this will be very convenient to keep in mind specifically: https://github.com/xsf/xeps#general-notes-on-making-changes

  82. jonasw

    because this xeplist.xml is the most important thing for all the automation I wrote

  83. jonasw

    it is crucial that the "old-xeplist.xml" refers to the last pushed state

  84. jonasw

    so before doing anything, do make build/xeplist.xml && cp build/xeplist.xml tools/old-xeplist.xml

  85. jcbrand

    ok, just before I do that...

  86. jcbrand

    I have now docker running

  87. jcbrand

    But it just gives me Nginx's default message

  88. jonasw

    yeah, you need to go to /extensions/ manually

  89. jcbrand


  90. jonasw

    you’ll get a directory listing there

  91. jcbrand


  92. jcbrand


  93. jcbrand

    ok cool, so that's working

  94. jcbrand

    I'll build the xeplist

  95. jcbrand

    ok done

  96. jonasw


  97. jonasw

    so now you can either make a new branch (which I’d recommend) or work on top of master

  98. jonasw

    making a new branch makes it easy to throw away stuff when you messed something up

  99. jcbrand

    ok, I'll make a new branch

  100. jcbrand

    Do you merge into the new branch or into master and then make the branch?

  101. jonasw

    and now the cool magic: you can use git pull origin pull/580/head to pull the changes from #580

  102. jcbrand

    ok ya

  103. jonasw

    new branch and then merge

  104. jcbrand

    ok and for #582 as well?

  105. jonasw

    I’d handle them separately at first

  106. jonasw

    so for 580, I’m not sure if we want a version block or not

  107. jonasw

    for now, let’s do one, because it’s a good exercise to do

  108. jcbrand

    version block?

  109. jonasw

    yeah, revision block

  110. jonasw

    something 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>

  111. jonasw

    (right below &stpeter;)

  112. jonasw

    you may adapt the wording and your initials at will of course

  113. jonasw

    I’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.

  114. jonasw

    feel free to omit

  115. jcbrand

    I was just wondering about that

  116. jcbrand

    will remove

  117. jonasw

    once you’ve added that block, make a commit; run make build/xeplist.xml to see if it’? happy with it

  118. jonasw

    once you’ve added that block, make a commit; run make build/xeplist.xml to see if it’s happy with it

  119. jcbrand

    No output, so I assume it's happy?

  120. jonasw

    that’s a good assumption

  121. jcbrand

    xeplist.xml looks ok

  122. jonasw


  123. jcbrand

    do you test the HTML then via docker?

  124. jonasw


  125. jonasw

    you can also build the HTML files with make

  126. jonasw

    in fact, you’ll have to do that to put the files into the attic

  127. jonasw

    (or rather: tools/archive.py will do that for you)

  128. jonasw

    we could try that right away actually

  129. jonasw

    did 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")?

  130. jcbrand


  131. jcbrand

    I have that

  132. jcbrand

    so `make html`?

  133. jonasw

    you can just run: ./tools/archive.py tools/old-xeplist.xml build/xeplist.xml

  134. jonasw

    it 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

  135. jcbrand

    yeah, so there's a new HTML file in the attic now

  136. jonasw


  137. jcbrand


  138. jonasw


  139. jonasw

    fine :)

  140. jcbrand

    you thought something was wrong?

  141. jonasw

    I thought I pasted that :D

  142. jonasw

    great, so you can now merge your branch into master, but don’t push yet.

  143. jonasw

    (if you’ve commited the revision block to git yet)

  144. jonasw

    and you can repeat the same process for #582

  145. jcbrand

    ok, will do

  146. jcbrand

    I didn't know this trick of pulling in pull requests

  147. jonasw

    yeah, I learnt that a few weeks ago in some XMPP-related MUC

  148. jonasw

    before I always puzzled together the URLs manually (https://github.com/$prauthor/xeps $branchname), which didn’t always work

  149. jonasw

    I 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 ;-)

  150. jcbrand

    Should I again make a revision block?

  151. jonasw

    yeah, for this one definitely

  152. jonasw

    it touches on registar issues

  153. jcbrand


  154. jonasw

    still only a patch revision though, because it doesn’t change normative language or intent in any way

  155. jcbrand

    I guess when in doubt, rather make it

  156. jonasw

    (it’s technically an oversight in editor work, we should’ve made sure that everything was coherent)

  157. jonasw


  158. jonasw

    even 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)

  159. jcbrand


  160. jcbrand

    so... 1.15.1 then?

  161. jonasw


  162. jcbrand

    oh, I should have copied over the old xeplist again

  163. jonasw

    no it’s fine

  164. jonasw

    all operations except sending email are idempotent

  165. jonasw

    in fact, do not copy it over until you have sent the emails

  166. jonasw

    (because the email sending also uses the xeplists)

  167. jonasw

    (unless you want to do it manually, which I would definitely not recommend ;-)

  168. jcbrand

    So you run `make build/xeplist.xml && cp build/xeplist.xml tools/old-xeplist.xml` once before merging PRs?

  169. jonasw


  170. jonasw

    after a git pull that is

  171. jonasw

    (in case somebody else did some work inbetween)

  172. jcbrand


  173. jcbrand

    I notice in the readme you have a different order, you mention sending out emails before copying over to the xeplist

  174. jonasw

    okay, 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 […]

  175. jonasw

    okay, 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 […]

  176. jonasw

    + all the testing in-between to make sure that things are okay

  177. jonasw

    you only run make build/xeplist.xml; the cp is never run again until after the send-updates.py

  178. jonasw

    (if you now accidentally copied over the old-xeplist.xml with some intermediate state, that’s fine, it’s recoverable)

  179. jonasw

    (also I doubt it’s an issue if we don’t send mails for both)

  180. jcbrand

    hmm, 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

  181. jcbrand

    Should I run `make build/xeplist.xml` first?

  182. jonasw


  183. jonasw

    running make build/xeplist.xml is always safe

  184. jcbrand

    ok, so diffing with `origin master` looks good

  185. jcbrand

    I'll push, since you've already mentioned it in the workflow

  186. jonasw

    ah, wait

  187. jcbrand


  188. jonasw

    one second please

  189. jonasw

    I want to test intosis PR first

  190. jonasw

    and merge that too if needed

  191. jonasw

    or if possible

  192. jonasw

    so yeah: merge intosis PR and run docker build . --build-arg NCORES=9 --build-arg TARGETS="refs" to see if it works

  193. jonasw

    if it does, that’s fine and you can push I think

  194. jonasw

    ah, and there’s one more thing we can do

  195. jonasw

    let me know when you’ve handled intosis PR

  196. jonasw has left

  197. jonasw has left

  198. jonasw has joined

  199. jonasw


  200. jonasw has left

  201. jonasw has joined

  202. jcbrand


  203. jonasw

    I think things have settled

  204. jcbrand

    Shall we continue here/

  205. jcbrand


  206. jonasw

    might as well

  207. jonasw

    okay, so once everything is merged and the last docker build went through, you can run the git push

  208. jonasw

    when the push’s over, you can observe the build here: https://hub.docker.com/r/xmppxsf/xeps/builds/

  209. jonasw

    (you won’t see output though; only when it switches to error or failed at some point)

  210. jonasw

    (you won’t see output though; only when it switches to error or failed or success at some point)

  211. jonasw

    while 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)

  212. jonasw

    while 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)

  213. jonasw

    once that’s done, we’ll prepare the sending of emails

  214. jcbrand

    The Makefile recipe I added, can I simply commit and push to master, or do you want to see a PR?

  215. jcbrand

    jonasw: ^ otherwise done and ready for sending emails

  216. jonasw

    you can paste the diff here (from git diff) and I’ll have a quick look

  217. jcbrand

    diff --git a/Makefile b/Makefile index f1ea374..e682928 100644 --- a/Makefile +++ b/Makefile @@ -167,6 +167,10 @@ preview: docker: docker build -t xmpp-org/extensions . +.PHONY: dockerhtml +dockerhtml: + docker build -t xmpp-org/extensions . --build-arg NCORES=9 --build-arg TARGETS="html inbox-html" + .PHONY: testdocker testdocker: docker run -d --name tmpxeps -p 3080:80 xmpp-org/extensions

  218. jonasw

    yeah, that looks safe

  219. jcbrand

    looks terrible

  220. jonasw

    you can commit & push that

  221. jcbrand

    ok done

  222. jcbrand

    so now emails I guess

  223. jonasw

    so 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

  224. jonasw

    I guess you can guess how to adapt that to your setup (I think you’re running your own mail server?)

  225. jcbrand

    is zombofant.net your SMTP server?

  226. jonasw


  227. jcbrand

    ok yeah, I run my own

  228. jonasw

    smtp.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

  229. jonasw

    to be clear

  230. jcbrand


  231. jonasw

    so 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

  232. jonasw

    you’ll know when it tries to send email because it’ll ask for your password

  233. jonasw

    (at this point, if you’re worried, you can of course read the source code of the script :-))

  234. jcbrand

    is this the email address that's registered on the XSF members list?

  235. jcbrand

    I have one email on the XSF members list and another for the other lists...

  236. jcbrand

    not ideal but ja :)

  237. jonasw

    you shoudl be using a mail address which is subscribed to standards@, because that’s where the mails go

  238. jcbrand

    ah standards

  239. jcbrand


  240. jonasw

    so 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)

  241. jcbrand

    yep, I checked

  242. jcbrand

    looks good

  243. jonasw


  244. jcbrand

    so now just running it without -n ?

  245. jonasw

    you 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

  246. jonasw

    your choice :)

  247. jonasw

    the 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

  248. jcbrand

    Emails are sent out

  249. jonasw


  250. jonasw

    you’re done I think :)

  251. jonasw

    even though

  252. jonasw

    I realize we should’ve waited until the build was done

  253. jonasw

    that’s not a huge issue though

  254. jcbrand


  255. jonasw

    build’s going to be finished in 60 minutes probably

  256. jcbrand

    ok next tiem

  257. jonasw


  258. jcbrand

    Thanks very much for your help with this

  259. jonasw

    you’re welcome

  260. jonasw

    and 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 :)

  261. jcbrand

    thanks. I'll do what and when I can :)

  262. jcbrand

    I'm glad I bought beer yesterday, now I can celebrate

  263. jonasw


  264. jcbrand

    have a good evening

  265. jonasw

    same to you

  266. jonasw

    build has passed, jcbrand.

  267. jonasw

    looks good so far :)

  268. jcbrand


  269. jonasw

    yupp, all touched XEPs look as they should :)

  270. jonasw

    good job :)

  271. jcbrand

    thanks :)

  272. jcbrand has left

  273. Guus has left

  274. Guus has left

  275. Tobi has left

  276. Tobi has joined

  277. SamWhited has left

  278. jcbrand has left

  279. Guus has left

  280. Guus has joined

  281. SamWhited has left

  282. SamWhited has joined

  283. SamWhited has joined

  284. SamWhited has joined