Skip to content
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

💡 Roadmap: The Road to v1.0 #1222

Closed
10 of 23 tasks
FredKSchott opened this issue Aug 25, 2021 · 22 comments
Closed
10 of 23 tasks

💡 Roadmap: The Road to v1.0 #1222

FredKSchott opened this issue Aug 25, 2021 · 22 comments
Milestone

Comments

@FredKSchott
Copy link
Member

FredKSchott commented Aug 25, 2021

NOTE: This conversation has been moved: withastro/roadmap#1

Background

There was a good discussion in Discord (#ideas-and-suggestions channel) about how to prioritize different projects on the roadmap. The @snowpackjs/maintainers-core team has had a few discussions internally about this, but we haven't really set it out in an explicit list yet. So, here's my attempt to capture that list.

The goal is to come up with a document that can be saved to ROADMAP.md and referenced in Discord, issues, and Open Collective (having a well defined Roadmap is essential for larger corporate sponsorships).

This issue (everything below, starting with the "Roadmap" header) is the draft of that document. Once accepted, I'll commit the issue into the repo.

Please leave comments & suggest changes before we merge!


Roadmap

Current Mission: The Road to v1.0
Our current mission is to launch an Astro v1.0 release later this year. To do that, there are certain features that must be shipped before we can consider Astro "feature complete" and worthy of the v1.0.0 version release. This will also give us a chance to gather user feedback on early features, make changes faster, and eventually finalize behavior for that v1.0.0 release that will not be easily changed going forward.

Goals

  • Stability
  • Developer experience
  • (as we near the end) Performance

Tasks

Handled by new compiler + vite

Bonus: Nice to have, but not required

  • <Image> component (owner: not yet claimed)
  • fetch respects HTTP cache control headers (owner: @jasikpark)
  • Memoization helpers (owner: not yet claimed)
  • TBD: .html components & page support (owner: not yet claimed, 💡 RFC: Support .html components and pages #1227)
  • build & dev server customization, plugin system (owner: not yet claimed)

Note: This list of tasks is non-binding: some things might be learned as we go that influence the document. Some things may need to go through the RFC process before getting added to the roadmap. We will try to keep this roadmap up to date to the best of our ability (see something out of date? create a PR!).

Note: Got a feature suggestion that you don't see on this list? You should still feel welcome to post in Discord (channel: #ideas-and-suggestions) or create an RFC. The core maintainer team may not be able to prioritize things outside of this list, but that doesn't mean that we can't discuss it, schedule it for a future roadmap, or support you in adding it yourself!

@matthewp
Copy link
Contributor

XSS is in in two bullet points, I think one's a dupe.

@jonathantneal
Copy link
Contributor

As part of the "finalize style & script hoisting" point, I strongly encourage Astro to switch the "hoisted & hashed by default behavior for <style> to "hoisted & hashed by election", akin to <script hoist>. Similarly, I hope this will prevent regular HTML tags from being appended with the unnecessary and human-incomprehensible hashed class names — e.g. when a <p> tag becomes <p class="astro-ldKR6c5M">. I understand the feature can helpfully scope CSS, and I would welcome it when explicitly activated.

Put another way — In the strongest possible sense I desire that plain HTML tags remain plain HTML tags.

@FredKSchott
Copy link
Member Author

+1, good call out. I've added "To finalize: any breaking default behavior (ex: style hoisting)" to make this even more clear.

@RafidMuhymin
Copy link
Member

How much importance should be given to paving the way for building a better ecosystem?

@FredKSchott
Copy link
Member Author

How much importance should be given to paving the way for building a better ecosystem?

Not sure what you mean, can you give some examples?

@RafidMuhymin
Copy link
Member

How much importance should be given to paving the way for building a better ecosystem?

Not sure what you mean, can you give some examples?

Astro is still too young and it has a very very small ecosystem. So, how much importance should be given to enlarging the ecosystem? For example, build APIs, plugins, themes, starters, etc.

@RafidMuhymin
Copy link
Member

I am willing to claim the <Image> component. I will use the imagetools-core package to achieve this instead of reinventing the wheel. I have already started working on this in my personal project.

@jasikpark
Copy link
Contributor

I would say that is the goal of this roadmap in a way - we want to work out the kinks for 1.0 so that then we can provide a stable basis for community development to work off of!

@RafidMuhymin
Copy link
Member

I would say that is the goal of this roadmap in a way - we want to work out the kinks for 1.0 so that then we can provide a stable basis for community development to work off of!

Reasonable.

@FredKSchott
Copy link
Member Author

I am willing to claim the <Image> component. I will use the imagetools-core package to achieve this instead of reinventing the wheel. I have already started working on this in my personal project.

Awesome! This could probably live entirely in a "user-land" project to start, so that you are free to experiment in your own src/components/Image.astro file + project without worrying about learning the Astro codebase. If you can get something good working in your project that you're happy with, we could look into integrating into Astro!

There's an RFC that outlines some of the features we were interested in: #492

@FredKSchott
Copy link
Member Author

I would say that is the goal of this roadmap in a way - we want to work out the kinks for 1.0 so that then we can provide a stable basis for community development to work off of!

Yup, the biggest item here for that is "make sure the npm publish story is solid". The rest of the roadmap is about getting to a stable foundation in v1.0, so that anyone feels comfortable building on top of it.

@RafidMuhymin
Copy link
Member

RafidMuhymin commented Sep 3, 2021

Awesome! This could probably live entirely in a "user-land" project to start, so that you are free to experiment in your own src/components/Image.astro file + project without worrying about learning the Astro codebase. If you can get something good working in your project that you're happy with, we could look into integrating into Astro!

There's an RFC that outlines some of the features we were interested in: #492

Thank you for your helpful suggestions! I will post all the updates on the discord channel.

@itskitto
Copy link
Contributor

Could we/I get a round off of what we would consider the popular CMSs? As I transition into a new schedule, this may be something I can tackle now

@FredKSchott
Copy link
Member Author

Want to start a thread in #ideas-and-suggestions in Discord? I could see that getting noisy and want to keep this issue focused on 1.0 readiness.

@mihilmy
Copy link

mihilmy commented Sep 22, 2021

How can I contribute to this roadmap? I think this is a very promising project and excited to see it going to v1.

@FredKSchott
Copy link
Member Author

I'm sure @jasikpark could use some help with the Prettier plugin. It's one of the more requested features that we get!

Other than that, most of the "nice to haves" don't have an owner yet and could be great to investigate.

Finally, anything in the RFC "accepted" column is fair game and has already passed through an RFC approval process.
https://github.com/snowpackjs/astro/projects/3

@matthewp matthewp unpinned this issue Sep 24, 2021
@FredKSchott FredKSchott pinned this issue Sep 24, 2021
@matthewp matthewp unpinned this issue Sep 28, 2021
@natemoo-re natemoo-re pinned this issue Nov 9, 2021
@natemoo-re natemoo-re added this to the v1.0 milestone Nov 9, 2021
@AsyncBanana
Copy link
Contributor

I could help with the CMS examples, although I do not know if I could do all of it myself, depending on how many CMS examples you are thinking of. Also, would they be example projects paired with a summary to get started, or would each have a whole page on the docs along with the example project?

@FredKSchott
Copy link
Member Author

@AsyncBanana That would be great! Mind pinging @natemoo-re in Discord, maybe in the #dev or #start-contributing channels? I think he's interested in kicking off some integration work to document different CMS, tools, etc.

@matthewp matthewp unpinned this issue Nov 15, 2021
@matthewp
Copy link
Contributor

I've identified blockers for the 1.0 release and documented them here: #1855

@FredKSchott
Copy link
Member Author

Update: we've kicked off a dedicated "v1.0 API" discussion in our new RFC repo: withastro/roadmap#1

@matthewp
Copy link
Contributor

Should we close this issue given that the RFC discussion exists now?

@FredKSchott
Copy link
Member Author

+1, I just got confused by this the other day. All discussion is now in withastro/roadmap#1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants