You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by GitBox <gi...@apache.org> on 2020/05/16 09:33:26 UTC

[GitHub] [lucene-solr] dweiss commented on a change in pull request #1522: LUCENE-9374: Add doclumentationLint gradle task

dweiss commented on a change in pull request #1522:
URL: https://github.com/apache/lucene-solr/pull/1522#discussion_r426136886



##########
File path: build.gradle
##########
@@ -134,3 +134,4 @@ apply from: file('gradle/ant-compat/forbidden-api-rules-in-sync.gradle')
 apply from: file('gradle/documentation/documentation.gradle')
 apply from: file('gradle/documentation/changes-to-html.gradle')
 apply from: file('gradle/render-javadoc.gradle')
+apply from: file('gradle/validation/documentation-lint.gradle')  // should be placed here; needs to be evaluated after documentation.gradle

Review comment:
       There is already a comment about include ordering above I believe, but fine.

##########
File path: gradle/validation/documentation-lint.gradle
##########
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+configure(rootProject) {
+
+  task documentationLint {
+    group 'Verification'
+    description 'Verify all documentation'
+
+    dependsOn 'documentation'
+    dependsOn subprojects.collect { prj ->
+      prj.tasks.matching { task -> task.name == 'checkBrokenLinks'}
+    }
+  }
+
+  // TODO: uncomment this line after fixing all broken links.

Review comment:
       I would add (commented out) check.dependsOn checkBrokenLinks to task declaration per-project as well so that when you run gradlew -p lucene check the validation runs on a per-project basis too.

##########
File path: gradle/validation/documentation-lint.gradle
##########
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+configure(rootProject) {
+
+  task documentationLint {
+    group 'Verification'
+    description 'Verify all documentation'
+
+    dependsOn 'documentation'
+    dependsOn subprojects.collect { prj ->
+      prj.tasks.matching { task -> task.name == 'checkBrokenLinks'}
+    }
+  }
+
+  // TODO: uncomment this line after fixing all broken links.
+  // (we can't fix the cross-project links until ant build is disabled.)
+  // check.dependsOn documentationLint
+}
+
+configure(subprojects.findAll { it.path in [':lucene', ':solr'] }) {
+  task checkBrokenLinks(type: CheckBrokenLinksTask)
+}
+
+class CheckBrokenLinksTask extends DefaultTask {
+  @Input
+  File docsDir = project.docroot

Review comment:
       (I don't know how to do this without changing field signature) but ideally this should be a lazy provider returning project.docroot. This would make it evaluation-order independent and would trigger input evaluation only if the task actually runs.
   
   Just a thought if you want to get deeper into gradle. ;)

##########
File path: gradle/validation/documentation-lint.gradle
##########
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+configure(rootProject) {
+
+  task documentationLint {
+    group 'Verification'
+    description 'Verify all documentation'
+
+    dependsOn 'documentation'
+    dependsOn subprojects.collect { prj ->

Review comment:
       This can be explicit since there are only two? (":lucene:checkBrokenLinks", ":solr:checkBrokenLinks")?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org