forked from chrisnappin/play-recaptcha
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO.txt
150 lines (116 loc) · 5.49 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Chris Nappin's play-recaptcha project todo list
===============================================
completed items
---------------
- get something working with recaptcha - done
- ensure it is reactive - done
- add unit test with mock WS - done
- add messages - done
- refactor to plugin with plenty of checks, logging, config - done
- added view templates - done
- make the example look nice - done
- create github account, upload initial code - done
- make sure my personal recpatcha keys aren't checked in! - done
- add license, check code headers - done
- add customize theme using config - done
- add optional tabindex - done
- build for multiple scala versions - done for 2.10.4 and 2.11.1
- write API docs for the client - done (on wiki)
- publish initial release on maven central - done (v0.8)
done for version 0.9
--------------------
- pass lang to reCAPTCHA if supported, otherwise recaptcha.defaultLanguage if set, or "en"
- i18n of example app (with french translation)
- view templates now require implicit request and lang
- support custom strings
- added config: recaptcha.useSecureVerifyUrl, recaptcha.useSecureWidgetUrl - default to false
done for version 1.0
--------------------
- show and verify recaptcha v2, with theme and type
done for version 1.5
---------------------
- upgrade from Play 2.3.x APIs to Play 2.4.x
- convert from Plugin to DI Module
todo list for future releases
-----------------------------
- extras: ajax api, allow custom recaptcha themes, translations etc...
- refactor WS to use new ning class with config.
- typesafe activator?
Google reCAPTCHA
----------------
My personal key is registered to nappin.com (but works with localhost)
Google development documentation is at https://developers.google.com/recaptcha/docs/display
github account
--------------
www.github.com, chrisnappin/..
markdown details: https://help.github.com/articles/markdown-basics
wiki details: https://help.github.com/articles/about-github-wikis
module repo: https://github.com/chrisnappin/play-recaptcha
module website (uses gh-pages branch): http://chrisnappin.github.io/play-recaptcha
module wiki: https://github.com/chrisnappin/play-recaptcha/wiki
example repo: https://github.com/chrisnappin/play-recaptcha-example
sonatype account
----------------
https://issues.sonatype.org, chrisnappin/..
groupId = com.nappin
to publish locally
------------------
activator + publish-local
or
activator + publish-local-signed
- writes to $home\.ivy2\local\com.nappin\play-recaptcha_2.10\0.1-SNAPSHOT
and $home\.ivy2\local\com.nappin\play-recaptcha_2.11\0.1-SNAPSHOT
(note: when example project resolves the jar locally, it creates eclipse config pointing directly
to the local archive and Eclipse holds a file lock on this!)
to publish on Maven Central
---------------------------
sbt uses the standard Maven2 repository (http://repo1.maven.org/maven/ aka http://central.sonatype.org) by default
see http://mfizz.com/blog/2013/07/play-framework-module-maven-central
and http://central.sonatype.org/pages/ossrh-guide.html
and http://www.scala-sbt.org/release/docs/Using-Sonatype.html
Using the SBT PGP plugin, rather than using GPG itself
- added to project/plugins.sbt:
addSbtPlugin("com.typesafe.sbt" % "sbt-pgp" % "0.8.3")
- create PGP keys (in activator/play shell)
set pgpReadOnly := false
pgp-cmd gen-key
Name: Chris Nappin
email: [email protected]
passphrase: ..
Public key is pubring.asc
Secret key is secring.asc
- then publish the public key:
pgp-cmd send-key [email protected] hkp://pool.sks-keyservers.net/
(command line said success, but sonatype or key search couldn't find it)
(manually uploaded contents from pubring.asc to https://a.keyserver.pki.scientia.net)
- add extra pom details needed for Sonatype (see build.sbt)
- created $home\.sbt\0.13\sonatype.sbt:
credentials += Credentials("Sonatype Nexus Repository Manager",
"oss.sonatype.org",
"chrisnappin",
"..")
- run:
activator + publish-signed
workflow
--------
make test/beta releases to maven central using a "a.b-SNAPHOTS" version number
- this uploads artifacts to the "snapshots" repo (Maven Central only includes "full" releases)
- snapshots can be published several times (immediately overwrites)
- run "activator update" to explicitly refresh remote snapshot dependencies (otherwise it will try to cache locally)
make "full releases" using a regular version number (e.g. "a.b")
- this uploads artifacts to the "staging" repo
- releases cannot be published several times, have to be deleted first
?? then need to "drop"/"close" (delete release, try again later) or "release" (promote to maven central) the staging repository
- login to https://oss.sonatype.org (using sonatype user account above)
- click on Build Promotion -> Staging Repositories
- look for groupId without dots and with -nnnn suffix
- status should be "Open"
- can manually download and test it
- can select the repo and click "Close" to trigger evaluation
(takes a couple of minutes)
- if fails, need to "Drop", resolve issues (see "Ruleset Evaluation Report") then redeploy to staging
- if successful, click "Release" to move staging repo to release repo
(first time you do this, need to update ticket to activate sync)
(sbt-sonatype plugin can be used to automate all of this - see https://github.com/xerial/sbt-sonatype)
- Maven central syncs to release repo, takes about 2 hours
- cannot update or delete artifacts from this point!