XSF Editor Team - 2018-02-08


  1. jonasw

    jcbrand: still up for our meeting?

  2. jcbrand

    hi jonasw

  3. jcbrand

    ready when you are

  4. jonasw

    jcbrand: k I need five more mins

  5. jonasw

    here I am!

  6. jcbrand

    jonasw: I'm running `make docker`

  7. jcbrand

    Currently generating pdfs

  8. jonasw

    I don’t even know what that does :D

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

  10. jcbrand

    ok

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

  12. jcbrand

    I see the pdfs take long

  13. jonasw

    yeah

  14. jonasw

    and for a quick local test, a waste of time

  15. jonasw

    the PDFs are in a bad shape in any case

  16. jonasw

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

  17. jcbrand

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

  18. jonasw

    that sounds reasoanble

  19. jcbrand

    an additional one

  20. jonasw

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

  21. jcbrand looks

  22. jcbrand

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

  23. jonasw

    feel free

  24. jcbrand

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

  25. 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?

  26. jonasw

    yeah

  27. jonasw

    I like to batch things up

  28. jcbrand

    ok

  29. jonasw

    I can do triaging during a five minute break

  30. jcbrand

    jonasw: looks like I might need docker credentials?

  31. jcbrand

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

  32. jonasw

    what

  33. jonasw

    I don’t think that you do

  34. jonasw

    I’m pretty sure that’s public

  35. jcbrand

    I got that when I ran 'make testdocker'

  36. jonasw

    ah

  37. jonasw

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

  38. jonasw

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

  39. jcbrand

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

  40. jonasw

    yah

  41. jonasw

    probably makes sense

  42. jcbrand

    I'm adding it to the Makefile

  43. jonasw

    cool :)

  44. jcbrand

    Ok, looking at #580

  45. jonasw

    did you read the README I wrote?

  46. jcbrand

    Yes

  47. jonasw

    sweet

  48. jcbrand

    but that was quite a while ago

  49. jcbrand

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

  50. jonasw

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

  51. jonasw

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

  52. jonasw

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

  53. jonasw

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

  54. jcbrand

    ok, just before I do that...

  55. jcbrand

    I have now docker running

  56. jcbrand

    But it just gives me Nginx's default message

  57. jonasw

    yeah, you need to go to /extensions/ manually

  58. jcbrand

    ok

  59. jonasw

    you’ll get a directory listing there

  60. jcbrand

    hmm

  61. jcbrand

    ah

  62. jcbrand

    ok cool, so that's working

  63. jcbrand

    I'll build the xeplist

  64. jcbrand

    ok done

  65. jonasw

    cool

  66. jonasw

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

  67. jonasw

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

  68. jcbrand

    ok, I'll make a new branch

  69. jcbrand

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

  70. jonasw

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

  71. jcbrand

    ok ya

  72. jonasw

    new branch and then merge

  73. jcbrand

    ok and for #582 as well?

  74. jonasw

    I’d handle them separately at first

  75. jonasw

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

  76. jonasw

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

  77. jcbrand

    version block?

  78. jonasw

    yeah, revision block

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

  80. jonasw

    (right below &stpeter;)

  81. jonasw

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

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

  83. jonasw

    feel free to omit

  84. jcbrand

    I was just wondering about that

  85. jcbrand

    will remove

  86. jonasw

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

  87. jonasw

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

  88. jcbrand

    No output, so I assume it's happy?

  89. jonasw

    that’s a good assumption

  90. jcbrand

    xeplist.xml looks ok

  91. jonasw

    great!

  92. jcbrand

    do you test the HTML then via docker?

  93. jonasw

    yes

  94. jonasw

    you can also build the HTML files with make

  95. jonasw

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

  96. jonasw

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

  97. jonasw

    we could try that right away actually

  98. 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")?

  99. jcbrand

    yes

  100. jcbrand

    I have that

  101. jcbrand

    so `make html`?

  102. jonasw

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

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

  104. jcbrand

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

  105. jonasw

    \o/

  106. jcbrand

    content/xep-0174-2.0.1.html

  107. jonasw

    ups

  108. jonasw

    fine :)

  109. jcbrand

    you thought something was wrong?

  110. jonasw

    I thought I pasted that :D

  111. jonasw

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

  112. jonasw

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

  113. jonasw

    and you can repeat the same process for #582

  114. jcbrand

    ok, will do

  115. jcbrand

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

  116. jonasw

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

  117. jonasw

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

  118. 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 ;-)

  119. jcbrand

    Should I again make a revision block?

  120. jonasw

    yeah, for this one definitely

  121. jonasw

    it touches on registar issues

  122. jcbrand

    ok

  123. jonasw

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

  124. jcbrand

    I guess when in doubt, rather make it

  125. jonasw

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

  126. jonasw

    yeah

  127. 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)

  128. jcbrand

    ok

  129. jcbrand

    so... 1.15.1 then?

  130. jonasw

    yupp

  131. jcbrand

    oh, I should have copied over the old xeplist again

  132. jonasw

    no it’s fine

  133. jonasw

    all operations except sending email are idempotent

  134. jonasw

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

  135. jonasw

    (because the email sending also uses the xeplists)

  136. jonasw

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

  137. jcbrand

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

  138. jonasw

    yeah

  139. jonasw

    after a git pull that is

  140. jonasw

    (in case somebody else did some work inbetween)

  141. jcbrand

    ok

  142. jcbrand

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

  143. 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 […]

  144. 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 […]

  145. jonasw

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

  146. jonasw

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

  147. jonasw

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

  148. jonasw

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

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

  150. jcbrand

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

  151. jonasw

    yes

  152. jonasw

    running make build/xeplist.xml is always safe

  153. jcbrand

    ok, so diffing with `origin master` looks good

  154. jcbrand

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

  155. jonasw

    ah, wait

  156. jcbrand

    ok

  157. jonasw

    one second please

  158. jonasw

    I want to test intosis PR first

  159. jonasw

    and merge that too if needed

  160. jonasw

    or if possible

  161. jonasw

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

  162. jonasw

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

  163. jonasw

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

  164. jonasw

    let me know when you’ve handled intosis PR

  165. jonasw

    ping

  166. jcbrand

    hello

  167. jonasw

    I think things have settled

  168. jcbrand

    Shall we continue here/

  169. jcbrand

    ?

  170. jonasw

    might as well

  171. jonasw

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

  172. jonasw

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

  173. jonasw

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

  174. jonasw

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

  175. 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)

  176. 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)

  177. jonasw

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

  178. jcbrand

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

  179. jcbrand

    jonasw: ^ otherwise done and ready for sending emails

  180. jonasw

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

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

  182. jonasw

    yeah, that looks safe

  183. jcbrand

    looks terrible

  184. jonasw

    you can commit & push that

  185. jcbrand

    ok done

  186. jcbrand

    so now emails I guess

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

  188. jonasw

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

  189. jcbrand

    is zombofant.net your SMTP server?

  190. jonasw

    yes

  191. jcbrand

    ok yeah, I run my own

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

  193. jonasw

    to be clear

  194. jcbrand

    yes

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

  196. jonasw

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

  197. jonasw

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

  198. jcbrand

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

  199. jcbrand

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

  200. jcbrand

    not ideal but ja :)

  201. jonasw

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

  202. jcbrand

    ah standards

  203. jcbrand

    ok

  204. 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)

  205. jcbrand

    yep, I checked

  206. jcbrand

    looks good

  207. jonasw

    cool

  208. jcbrand

    so now just running it without -n ?

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

  210. jonasw

    your choice :)

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

  212. jcbrand

    Emails are sent out

  213. jonasw

    cool

  214. jonasw

    you’re done I think :)

  215. jonasw

    even though

  216. jonasw

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

  217. jonasw

    that’s not a huge issue though

  218. jcbrand

    ah

  219. jonasw

    build’s going to be finished in 60 minutes probably

  220. jcbrand

    ok next tiem

  221. jonasw

    yeah

  222. jcbrand

    Thanks very much for your help with this

  223. jonasw

    you’re welcome

  224. 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 :)

  225. jcbrand

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

  226. jcbrand

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

  227. jonasw

    ha

  228. jcbrand

    have a good evening

  229. jonasw

    same to you

  230. jonasw

    build has passed, jcbrand.

  231. jonasw

    looks good so far :)

  232. jcbrand

    good

  233. jonasw

    yupp, all touched XEPs look as they should :)

  234. jonasw

    good job :)

  235. jcbrand

    thanks :)