Skip to content

Rework the integrated reference in Processing #980

Open
@Stefterv

Description

@Stefterv
Collaborator

Most relevant area for this enhancement?

PDE

Feature to enhance

Reference

Desired enhancement

In PR #968, I implemented functionality to include the current state of the reference documentation as a zip file with each release. You can see an example of this in the processing-4.4.0-reference.zip file at https://github.com/processing/processing4/releases/tag/processing-1300-4.4.0.

We now need to refactor the existing reference handling code so that it downloads this new packaged version instead of the outdated version it currently uses. Additionally, we should replace the custom WebServer class with an established external package that provides the same functionality.

Additionally, a jetpack compose based progress interface would be appreciated, but not required for the PR

Potential benefits

If there are any API changes within version of Processing, now users can rely that their internal reference is relevant to the version they are using.

Possible drawbacks

No response

Additional context

@SableRaf please add any missing functionality or revise for clarity

Would you like to work on the issue?

Someone else can pick this up

Activity

D-I-R-M

D-I-R-M commented on Mar 23, 2025

@D-I-R-M

@Stefterv
Can you assign me this issue?

SableRaf

SableRaf commented on Mar 23, 2025

@SableRaf
Collaborator

Hi @D-I-R-M, I just assigned you. Thanks for picking this up! Let us know how you're thinking of approaching this issue and if you need any guidance.

D-I-R-M

D-I-R-M commented on Mar 24, 2025

@D-I-R-M

@SableRaf Thank You.
Sure I will discuss it with you as soon as i get an idea .

D-I-R-M

D-I-R-M commented on Mar 24, 2025

@D-I-R-M

How should i approach this problem? Any insights or suggestions on where to start would be really helpful!

Stefterv

Stefterv commented on Mar 24, 2025

@Stefterv
CollaboratorAuthor

Hi @D-I-R-M!

First of all we would like to replace the WebServer with something that comes out of the box (with the JDK ideally)
The process that kicks off launching the reference can be found here
That's also where you find the functionality to download the reference, which should get an updated source. (For debug builds, which won't have a version specified, it should probably refer to the latest release)

The reference is attached to each release of Processing (example) as processing-*.*.*-reference.zip

D-I-R-M

D-I-R-M commented on Mar 25, 2025

@D-I-R-M

I think this is a bit challenging for a beginner like me .It will take me 5-6 days to learn and implement it.
If there is no problem with the above situation , I will continue working on it.
Right now i am working on it , will proceed or stop as per your decision 🫡

SableRaf

SableRaf commented on Mar 25, 2025

@SableRaf
Collaborator

Hi @D-I-R-M and thanks for sharing your concerns. There is no milestone attached to this issue so you can take all the time you need to figure it out. We're here to help if you need more guidance. It's also totally fine if you prefer to switch to a smaller issue. Just let us know 💙

Vaivaswat2244

Vaivaswat2244 commented on Mar 31, 2025

@Vaivaswat2244

Hello everyone,
After reviewing the code and the above very helpful discussion, I think the following tasks are to be implemented:

  • Updating the reference download functionality to use the version-specific reference zip files now included with each release (e.g., processing-4.4.0-reference.zip)
  • Replacing the custom WebServer implementation with com.sun.net.httpserver.HttpServer from the JDK (need your thoughts on this, weather this is okay or should I look for some other packages)
  • Configure debug builds to pull the latest available reference documentation

For the download system, I'll ensure it properly handles version matching and maintains backward compatibility. I'll also implement appropriate error handling for network issues or missing reference packages.
So,
If @D-I-R-M is not working on it, I can start work on this immediately. If there are specific architectural considerations or preferences you'd like me to follow, please let me know.

SableRaf

SableRaf commented on Mar 31, 2025

@SableRaf
Collaborator

Thanks @Vaivaswat2244 for your request and for your detailed proposal! Let's see if this issue is available.

@D-I-R-M: are you still interested and working on this issue? If so, take your time and maybe you and @Vaivaswat2244 can collaborate. If not, that's okay too. Just let us know so we can re-assign the issue.

D-I-R-M

D-I-R-M commented on Apr 1, 2025

@D-I-R-M

Yes I am still interested , was busy with college assignments.
Sure, we can work on this together. @Vaivaswat2244 is that okay with you? I just sent you a LinkedIn request. We can discuss the implementation there.

Vaivaswat2244

Vaivaswat2244 commented on Apr 1, 2025

@Vaivaswat2244

Sure @D-I-R-M , would love to collaborate on this. Although instead of discussing it on LinkedIn, I think we should discuss it here so if we go on the wrong path, we can be corrected by others.
On that note,
I mentioned above that we can use com.sun.net.httpserver.HttpServer

What are your thoughts on this... Also I would like to ask @SableRaf and @Stefterv

Stefterv

Stefterv commented on Apr 1, 2025

@Stefterv
CollaboratorAuthor

com.sun.net.httpserver.HttpServer Is also what I found in my initial research, looks like a good candidate

Discussing it here is indeed preferred by us so we can keep an eye on things. Or feel free to use the discord if you would like a bit more direct communication

added this to the 4.4.5 milestone on May 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type

Projects

Status

No status

Relationships

None yet

    Development

    Participants

    @SableRaf@Stefterv@Vaivaswat2244@D-I-R-M

    Issue actions

      Rework the integrated reference in Processing · Issue #980 · processing/processing4