dpgalliance / publicgoods-scripts Goto Github PK
View Code? Open in Web Editor NEWScripts to generate static site from WordPress
Home Page: http://digitalpublicgoods.net
License: MIT License
Scripts to generate static site from WordPress
Home Page: http://digitalpublicgoods.net
License: MIT License
Select all / Deselect all
In the Registry home page, the current "select all" functionality doesn't function properly:
How does it work now?
Bug 1) If I deselect all (unselecting all types and SDGs), I then cannot add back individual items by selecting one by one.
Bug 2) If I leave "select all" enabled, and then uncheck each type in turn, then turning them back on does not restore the category to the list.
How it should work:
NEW feature: Select all and deselect all function should work separately both for DPG Types and SDGs. User should be able to select/deselect all of the types and also for SDGs.
When all is deselected, the selected item should return a result if there's a match. (Bugs mentioned above)
When all is selected, unselected items should be filtered out. (This works fine)
Looking at the console while running the eligibility form in localhost I see the following error message:
Check the render method of `FAQ`. See https://fb.me/react-warning-keys for more information.
in Fragment (created by FAQ)
in FAQ (at Eligibility.js:339)
in div (at Eligibility.js:338)
in div (at Eligibility.js:270)
in div (created by ForwardRef(Paper))
in ForwardRef(Paper) (created by WithStyles(ForwardRef(Paper)))
in WithStyles(ForwardRef(Paper)) (at Eligibility.js:269)
in center (at Eligibility.js:261)
in Eligibility (at src/index.js:8)
For epic - Map Visualization
The map should be more tightly integrated with the DPGA website by embedding it in a page that has the header and footer matching the rest of the website.
Note
For the desktop version I suggest to reduce the size of the footer and keep it in the info container on the left side of the page.
For epic - Eligibility Form
Yes
, No
, Back
, Next
For epic - Eligibility Form
Proceed
buttonExpected Behaviour:
Publicgoods-script successfully builds graph visualization on registry page of DPG website via GitHub Actions.
Trace:
Current breaking build log can be seen here
Why
Major Update to the API introduced a change in structure to the sdgs
key of the API in the public goods review-web app
During the build of the registry page, key is responsible for graph visualization and some counting metrics.
eg Application ID 10216
Version 1.0 Structure for sdgs
key
"sdgs": [
{
"sdg": "SDG4: Quality Education",
"relevance": "TOAEP has been built to indefinitely provide free and immediate access to quality publications on international law to anyone with access to the Internet, regardless of their geographical location. TOAEP will remain non-profit and open access. As such, TOAEP is aligned with Goal 4 of the Sustainable Development Goals (‘SDGs’) (that is, it will “ensure inclusive and equitable quality education and promote lifelong learning opportunities for all”).,
 
TOAEP is directly aimed at Goal 16 of the SDGs (that is, to “promote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable and inclusive institutions at all levels”). By publishing open access international law information, including on international criminal law, TOAEP aims to equip individuals with the knowledge required to ensure that there is accountability for core international crimes in their societies, organisations and countries."
},
{
"sdg": "SDG16: Peace¸ Justice and Strong Institutions",
"relevance": "TOAEP has been built to indefinitely provide free and immediate access to quality publications on international law to anyone with access to the Internet, regardless of their geographical location. TOAEP will remain non-profit and open access. As such, TOAEP is aligned with Goal 4 of the Sustainable Development Goals (‘SDGs’) (that is, it will “ensure inclusive and equitable quality education and promote lifelong learning opportunities for all”).,
 
TOAEP is directly aimed at Goal 16 of the SDGs (that is, to “promote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable and inclusive institutions at all levels”). By publishing open access international law information, including on international criminal law, TOAEP aims to equip individuals with the knowledge required to ensure that there is accountability for core international crimes in their societies, organisations and countries."
}
],
Version 2.0 Structure for sdgs
key
"sdgs": {
"sdg": [
"SDG4: Quality Education",
"SDG16: Peace¸ Justice and Strong Institutions"
],
"relevance": "TOAEP has been built to indefinitely provide free and immediate access to quality publications on international law to anyone with access to the Internet, regardless of their geographical location. TOAEP will remain non-profit and open access. As such, TOAEP is aligned with Goal 4 of the Sustainable Development Goals (\u2018SDGs\u2019) (that is, it will \u201censure inclusive and equitable quality education and promote lifelong learning opportunities for all\u201d).,
 
TOAEP is directly aimed at Goal 16 of the SDGs (that is, to \u201cpromote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable and inclusive institutions at all levels\u201d). By publishing open access international law information, including on international criminal law, TOAEP aims to equip individuals with the knowledge required to ensure that there is accountability for core international crimes in their societies, organisations and countries."
},
For epic - Map Visualization
As MVP is ready the next step is to implement standalone visualization into digitalpublicgoods.net/map 🚀
Make the following content-related changes in the Eligibility Form:
After the script pulls the WordPress sites pages, part of the subsequent steps is to build packages/eligibility
That throws the following error in the build process
Error: Can't resolve '/wp-content/themes/dpga/font/NowAlt-Regular.woff' in '/home/runner/work/publicgoods-scripts/publicgoods-scripts/packages/eligibility/src'```
Just updated the map content & looking great. A few suggestions/questions below:
Thanks so much!
I would like to make some more improvements to the map visualization:
There is no summary information about DPGs on the entire website. I can add charts to the menu that will show how many DPGs are associated with each SDG and type. The summary information will be visible when nothing is selected like in the screenshot bellow.
Add one more layer of visualization by SDGs. It'd be great to have an ability to select one of 17 SDGs from the dropdown and see how many DPGs are related to it. I think it'll be great to show it both on the map with colors (from light to dark depending on how many DPGs are deployed) and on side menu using barcharts with country names.
What do you think @SarahWat , @lacabra ?
cc: @nathanfletcher
I looked into CI builds and found that sometimes DPG data is missing https://digitalpublicgoods.net/map/
My guess is that script fetches data through github search API which has some limits.
Suggestion
Need to change the way how we retrieve data here from fetch
to fs.readdir
and fs.readfile
since we are cloning publicgoods-candidates repo on every build
path.join(process.cwd(), "../../../publicgoods-candidates/digitalpublicgoods");
path.join(process.cwd(), "../../../publicgoods-candidates/nominees");
Currently Digital Public Goods (DPGs) are published in a large list with no apparent way to link directly to a specific DPG. You need to link to the list itself and then navigate/search for a specific DPG. I propose adding in an html id tag to each of the items in the list of Digital Public Goods.
This will allow folks to link back to their Digital Public Good on the list. This will:
It looks like this could be accomplished fairly simply by adding an id
in the ListItem
function in following file:
packages/registry/src/index.js
which appears to be generating the registry. I suggest we use linkName
as it is already a generated variable in the script and as it is based of the name it should be unique.
I think we can do this easily by swapping line 291 from:
<tr key={index} className={itemClass}>
to:
<tr key={index} id={linkName} className={itemClass}>
I'm under the assumption that names of DPGs are unique but if it is possible for a nominee and an approved good to have the same name and therefore the same generated linkName this could lead to an id collision.
After having fixed the CORS issue documented in #49, the submission form does not reflect the answers coming from the eligibility form. No error is shown anywhere.
Update the following components of the Eligibility Form based on feedback received:
Content
UX
It would be good to automatically generate anchors for each item in the list so that we can use links like https://digitalpublicgoods.net/explore/#item.
This functionality used to exist, but it was wiped in a recent restructuring of the scripts.
For epic - Eligibility Form
Add a progress bar on top to indicate progress reached while filling Eligibility Form, similar to the one in here.
In the Registry home page, the current "select all" functionality doesn't function properly:
How does it work now?
Bug 1) If I deselect all (unselecting all types and SDGs), I then cannot add back individual items by selecting one by one.
Bug 2) If I leave "select all" enabled, and then uncheck each type in turn, then turning them back on does not restore the category to the list.
How it should work:
Originally posted by @mlschechter in DPGAlliance/publicgoods-website#23 (comment)
The current version of the eligibility form only counts a valid answer if it is answered Yes
, but that is not correct.
For example, indicator 4 asks "Does the license of libraries/dependencies undermine the openess of the project?" and the correct answer here is No
instead of Yes
Similarly, indicator 9 asks "Does the project do no harm" and the correct answer is No
instead of Yes.
Furthermore, some of the questions around eligibility cannot be reduced to a simple Yes/No answer as it may depend. Please identify which questions are Yes/No (e.g. questions 1 and 2, are Yes/No, where the correct answer is Yes, and if they answer No, they are not eligible). For the rest of the questions identify what needs to happen for them to be eligible if they provide the "wrong" answer.
Note that question 4, if they answer No
they are eligible, but if they answer Yes
, they are also eligible IF they are able to demonstrate independence from closed components (see 3rd column on indicator 4 here).
From the discussion above, I envision that the summary should provide 3 end results: Yes
, No
and Maybe
if certain conditions are met. The results page of the form should thus account for this.
@nathanbaleeta should be able to provide additional clarity around this.
Cc: @amreenp7
Similar to #57, when looking at the console while running the eligibility form in localhost I see the following error message:
index.js:1 Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>.
in p (at quizQuestions.js:33)
in p (at FAQ.js:11)
in div (at FAQ.js:9)
in div (at FAQ.js:6)
in FAQ (at Eligibility.js:339)
in div (at Eligibility.js:338)
in div (at Eligibility.js:270)
in div (created by ForwardRef(Paper))
in ForwardRef(Paper) (created by WithStyles(ForwardRef(Paper)))
in WithStyles(ForwardRef(Paper)) (at Eligibility.js:269)
in center (at Eligibility.js:261)
in Eligibility (at src/index.js:8)
If the project is deemed eligible, and the user clicks to make a submission, the answers to the nine questions that have been answered on the eligibility form should be transferred to the submission as the initial state (see this, this and this) of that form and notify the user accordingly (see this and this), similar to this other notification (see blue box at the top):
FYI: @nathanbaleeta
The information density on the current form is very low, and the font size is fairly large. Reconsider the layout and font size to fit more content in each of the first views for each question.
For larger screens than mobile, like desktop, condense the form such that the full question, possible answers, and an entire FAQ displays on screen without scrolling.
See link for reference, and how almost every step of this form fits in one screen
Right now in registry section users need to hover on rectangles in distribution by SDG
chart to see the labels and values of data. Otherwise data visualization communicate too little information.
We can add labels of SDGs to chart. It'll improve UX and be more readable.
Current
Suggestion
I suggest the following design. It's clear what these rectangles are about.
Or even better
We can also add amount of nominees to each rectangle where it fits. We need a word nominee
in the first rectangle to indicate what these numbers are about.
I can see that visualization is rendered in this repo so I opened issue here
@lacabra what do you think?
The current implementation of distribution by type
diagram in Registry section uses circles. It is a bad pattern in data visualization. Let me explain.
When we visualize data with circles we need to calculate the area with weird for human mind formula A = πr², where A represents area (value of data), r - radius, π=3.1415. Because of r² and π it's hard for users to understand the dimensions and visually compare different circles.
Let's imagine a circle. Now try to imagine another one smaller twice.
Common answer is to reduce width(diameter) of circle twice, but it's wrong.
I suggest to use rectangles instead. This is why:
Suggestion:
I suggest the following design. Note that dimensions are inaccurate.
Even better
Users don't need to hover if number fit the rectangle.
It will also better align with tree map design of distribution by SDG
chart
I can see that visualization is rendered in this repo so I opened issue here
@lacabra what do you think?
Reproduce
Navigate to the visualization. I will see that loader logo is displayed incorrectly.
Add the image to the step in story and you will see an error
If I add s3.amazonaws.com
to the next.config.js
there will be another error.
How to fix
Since we are using next/image we need to follow these rules.
next.config.js
. I see that most images are located on s3.amazonaws.com
. Are there any other links we should add? @lacabra @nathanfletchermapComponent.js
.import NextImage from next/image
because Image
is reserved for mapbox patternsAdd a README.md
file to the packages/eligibility
folder explaining what that folder contains, and provide an overview of the code and flow.
Add documentation geared to first-time contributors so that they can more easily navigate the codebase and be in a better position to contribute.
I know that the other packages are also missing it, but since this form is still in active development, it would be a good time to get it document it and serve as a model to document the other folders at a later date.
Cc: @amreenp7, @nathanfletcher
In the DPG registry table, projects names are currently URLs to their websites.
The DPG badges of these entries link to further details about their submission to the registry.
The task is to rather make the URL of the name of the project link to the submission details on the DPG website.
In attempts to fix #24 it would be necessary to enable CORS from the Eligibility from, in order to pass data from the Eligibility form to this Submission Form.
DPGs Deployed
and DPGs Developed
filters. It's important because in bright future when there will be more than a thousand of DPGs, bars may be bigger than window view-port.The CORS error persists when sending data to the nomination form.
The next.js config file inside the Submission-digital-public-goods project does not work as intended.
During the build and deploy phase of the GitHub action auto.yml
the Maven tests fail.
Below is the link to the actions log
https://github.com/DPGAlliance/publicgoods-scripts/actions/runs/5856799503/job/15877852577#step:4:1469
However, I have pasted below a more verbose log of the error when running it locally.
It seems to be a plugin/dependency issue from Lombok
[INFO] --------------< net.digitalpublicgoods:DPGAUIAutomation >---------------
[INFO] Building DPGAUIAutomation 1.0-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- resources:3.0.2:resources (default-resources) @ DPGAUIAutomation ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /publicgoods-scripts/TestAutomation/DPGAUIAutomation/src/main/resources
[INFO]
[INFO] --- compiler:3.8.0:compile (default-compile) @ DPGAUIAutomation ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /publicgoods-scripts/TestAutomation/DPGAUIAutomation/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.565 s
[INFO] Finished at: 2023-08-14T16:28:08Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project DPGAUIAutomation: Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project DPGAUIAutomation: Fatal error compiling
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1140)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.codehaus.plexus.compiler.CompilerException: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:173)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e
at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper (JavacTaskImpl.java:168)
at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e
at lombok.javac.apt.LombokProcessor.getJavacProcessingEnvironment (LombokProcessor.java:419)
at lombok.javac.apt.LombokProcessor.init (LombokProcessor.java:90)
at lombok.core.AnnotationProcessor$JavacDescriptor.want (AnnotationProcessor.java:124)
at lombok.core.AnnotationProcessor.init (AnnotationProcessor.java:177)
at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init (AnnotationProcessor.java:73)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init> (JavacProcessingEnvironment.java:701)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next (JavacProcessingEnvironment.java:828)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:924)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1267)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1382)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1234)
at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:916)
at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0 (JavacTaskImpl.java:104)
at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper (JavacTaskImpl.java:152)
at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Additional tasks:
Right now the map can load a maximum of 100 dpgs because of search github api limitations.
We need to handle this issue before there will be more than 100 registries.
The DPG Registry currently allows to filter the list of nominees and digital public goods by type including content
, data
, software
and standard
on the left-hand side, but it's missing the ai model
type that the data schema in the digital public goods repository allows for.
Make the following changes in Task Flow:
Yes
, display the next three questions and then Result.No
, take directly to Result page based on already answered questions.For epic - Eligibility Form
Update the content of FAQs in form.
Refer to this file: link
Currently, people who come to the Digital Public Goods (DPGs) registry don't have an easy way to view the code of the repositories. This forces them to visit the project, search for a link to GitHub (or other hosting platform) and then navigate there. For some DPGs this is a frustrating experience as this is something available. I'd like to add a link in the registry to the code.
This will allow technologists and others who are interested in contributing to DPG projects to quickly find the source code and not leave frustrated. Several projects link to production sites and finding the code requires internet searches or more. Some of the key benefits I see of listing this are:
It looks like this could be accomplished by adding a link in the ListItem
function in following file:
packages/registry/src/index.js
which appears to be generating the registry.
It would involve editing the sections which set the name
attribute and specifically it could be accomplished in lines 261-266 of the above file.
The json
payload contains a repositories
section with a link to the repository/source code of the project. It should be noted that a few projects list multiple repositories so I'd propose taking the first repository and using it.
Source Code
link in the name section of the registry that links to the source code if it exists.Hi, this link on the readme - http://localhost:8080/ - is not working. I'm unable to fix it. Fletcher, could you please look into it? It would be great if you could audit the repos you work on to fix the broken links as well. Thanks a lot.
While I was working on treemap improvements I found out that the graph in registry section is not fully displayed. Which results missing 4 SDGs and incorrect sizes of 6 SDGs.
The current DPG Registry loads the display of both DPGs and nominees. The requested feature is for the default view to display only DPGs, and nominees have to be explicitly added for display by enabling the corresponding filter.
Cc: @prajectory
For epic - Eligibility Form
Since nathan baleeta has left, and the system generated emails were sent from his side, we have changed the name of the sender to either Ricardo or Prajakta.
The number of questions is not consistent through the form, with the intro page stating there are 9 questions, then the form loads and says there are 7, the user answers 10, and the summary page again says there are 9 questions. If any of these values are hardcoded, they should be dynamically generated based of the questions in the dictionary. See screenshots below for additional details.
The intro page states that there are 9
questions:
When the form loads it displays 1 of 7
questions:
The DPG - ODK - brought this issue to our notice. They had submitted their initial application through Github before the webapp was built. The link to their public DPG page at the time was https://digitalpublicgoods.net/registry/odk.html.
However, once the webapp was built, all previous public DPG links had to re-direct to their Registry page.
For ODK, that link is - https://digitalpublicgoods.net/registry/
However, this redirect seems to have not happened and their previous link with outdated information is still live.
This makes me wonder whether other DPGs would face the same issue.
All GitHub public pages of DPGs should redirect to the updated public pages through the website registry.
For example https://digitalpublicgoods.net/registry/odk.html. should redirect to https://digitalpublicgoods.net/registry/
This was a part of the transition plan and is not completed:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.