-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Modernize EIPs Platform: Migration from Jekyll #9332
Comments
I've been working on a rework of the EIPs/ERCs build system for quite some time now. You can follow my progress over at https://github.com/eips-wg/ Repositories of note: |
I understand you've been working on restructuring the EIPs/ERCs build system with a multi-repository approach using Zola. The complexity of this structure raises several concerns:
The proposed Nuxt 3 migration offers significant advantages:
Is there a specific technical requirement that necessitates this multi-repository Zola approach over a more streamlined solution? |
There will be three in the current iteration:
Inefficient in the sense of performance? The build takes about a minute, and most of that is unoptimized git operations. Inefficient in having to maintain the code? I have no argument against that.
True, but the project isn't complete yet.
I mean... Nuxt, vue, and vite aren't exactly complexity-free either.
We don't want a single repository. We want at least two (EIPs and ERCs).
True, but by doing preprocessing, we can statically generate more things. So far we render csl-json into proper citations and eventually we'll probably replace MathJax.
I don't see this as a benefit.
First, you'd need to back this up with some data. Second, build speed isn't everything.
True, but two of the EIP Editors are Rust developers and zero are TypeScript developers.
Nothing requires Zola, no. We do have the requirement of separate ERC and EIP repositories, so putting common build stuff into a third repository makes some sense. |
Rereading my response, it might sound like I'm completely opposed to using the work you've done. I'm not! I wouldn't mind seeing your source if you have it up somewhere. From a very unscientific look at the transferred size of your demo vs. eips-wg:
Obviously our sites have different features, so this isn't an apples to apples comparison. Some minor bugs I've found using your demo:
|
Thank you for taking the time to review my demo and provide detailed feedback. I appreciate your insights and would like to address some of the points you raised. Regarding the Demo's Current StateFirst, I want to clarify that this demo was developed in less than 3 days as a proof of concept to demonstrate what's possible with Nuxt 3. It's not a finished product but rather a starting point for discussion about potential modernization paths. On Repository StructureWhile your plan to consolidate from many repos to three ( I understand your requirement for separate EIPs and ERCs repositories. Nuxt can certainly accommodate this approach while still providing unified build tooling. Regarding PreprocessingFair point about the build time - a minute isn't terrible. My concern is more about maintainability. Custom preprocessing creates a knowledge barrier for new contributors who have to understand both the EIP format and how the preprocessing transforms it. This doubles the learning curve. While you make a good point about static generation capabilities, Nuxt also supports custom build plugins that could handle citation rendering and MathJax replacement. On Technology Choices
You're absolutely right! However, they're widely documented complexities with established patterns. When contributors hit a wall with Nuxt, they have thousands of Stack Overflow answers and tutorials to reference. With custom preprocessing, they're dependent on the team. Regarding Repository RequirementsThe EIPs/ERCs separation makes sense. Nuxt can actually work well with this structure - we could have a shared Nuxt module package that both repos import, giving you the separation with unified tooling. On Developer Experience
This surprised me! Hot module replacement saves enormous time during content editing. Have you tried working in an environment with it? It's one of those things that doesn't seem important until you've experienced it. While you may not personally see TypeScript and hot module replacement as benefits, they do reduce the barrier to entry for many potential contributors. That said, I understand your point about the current editor team's expertise in Rust. Performance ConsiderationsI'd be happy to provide more detailed performance benchmarks. The initial page load size can be further optimized - what you're seeing is an unoptimized build with development features enabled. Bugs IdentifiedThank you for pointing out these issues:
These are all fixable items that would be addressed in a complete implementation. On the Rust vs. TypeScript PointThis is possibly the most compelling argument you've made. Tools should match the team's expertise. Though I'd suggest that expanding beyond the current editors' comfort zone might encourage more diverse contribution. Moving ForwardWhat if we considered a hybrid approach? Use Rust for the heavy lifting (data processing) but Nuxt for the presentation layer? I'm open to collaboration or even a hybrid approach that leverages the strengths of both solutions. I believe we share the same goal of improving the EIPs platform, even if we have different approaches to getting there. Would you be interested in discussing specific requirements in more detail? |
Current Implementation Issues
Proposed Solution
Migration to Nuxt 3
Demo
https://eips-ethereum.netlify.app/
Video
Demo.mp4
Tech Stack
Advantages
Developer Experience
Performance
Content Management
Implementation Timeline
Migration Strategy
Risks
@fjl @Shadowfiend @pelle @jm3
The text was updated successfully, but these errors were encountered: