-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactoring into multiple files / parts #13
Comments
I agree with the approach of splitting the files. |
I would like to share more details about the problem, including the technical background and the challenges we are facing. Technical Background and Current ChallengesThe implementation of Stub, inherited from OCRAN's predecessor OCRA, had an old bug where it ignored errors during the working directory change. Our refactoring work has made these errors reportable, uncovering previously hidden issues. Specifically, Stub was originally designed to expand files into a temporary directory and execute them, which is not suitable for the operation in the installation directory used by the InnoSetup process. The behavior of Stub in the installation directory fails to meet this expectation, resulting in a failure to change the working directory. Proposal and Work PlanBased on these findings, I propose to proceed with refactoring InnoSetupBuilder to achieve an installer creation process that does not depend on Stub. This approach will make the installation process more robust and reliable, allowing users to install and execute the application smoothly. With these changes, we can resolve the issues related to working directory changes, improving the reliability and usability of the entire system. |
In commit |
I have some ideas about making OCRAN work on OSX and Linux. Currently, OCRAN uses stub.exe to create self-extracting files, but this stub.exe only operates in the Windows environment. A different approach is needed to make the OCRAN package function on multiple platforms. Here are some proposed solutions:
|
As a first step, can we first have code that will make a directory with the source code and the ruby binaries + dlls / dlyb / so files? If we have that working on one plattform it will be a lot easier to continue. So for now we can leave the stub for just windows. For that we continue to refactor the code. But I agree on the solutions! Thanks! |
Making the stub portable across multiple platforms is challenging at this time. Moreover, in Windows environments, users require the .exe format. We will be adding several package builders, but for the sake of OCRAN's autonomy, the stub will be maintained. |
I can work on this. One personal motivation of mine has been to create ZIP packages, which is a major distribution format in Japan's Windows environment. Importantly, |
Yes, zip would be great! As you know, it's already possible to create a folder. Feel free to make a argument that will automically zip that folder. In the future it would be nice if this folder can be extended with ruby for other OS. The zipfile should also be offered as PKZIP self extracting option. Btw. You might find lib cosmopolitan interesting justine.lol/ape.html |
I have completed the refactoring work. It took me five full months to break down what was essentially a massive, uncut gem. As a result, all we have are split files. This means that not only does it fail to resolve any existing issues, it also doesn't add any new features. However, I believe that this has laid the groundwork for what comes next—OCRAN. |
Really cool. Thanks! I'm sure this will mean it will be a lot easier for others to help us to improve OCRAN. My vision is for OCRAN to help Ruby to become a good option for crossplattform apps! |
I have created a new issue to discuss the recent proposals mentioned here. The ocran.rb has been split into separate files, and this change is permanent. Therefore, we can close this issue. |
Most of the action happens in the ocran file. I think it would be nice to split this up, so it would be easier to understand.
I think we can make ocran work on OSX and Linux, so we should move the windows specific parts into separate files.
Split up:
https://github.com/Largo/ocran/blob/master/bin/ocran
The text was updated successfully, but these errors were encountered: