-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Port to libSass #1916
Comments
Please let's keep the comments on this issue on-topic. I appreciate the enthusiasm, but I need this to be a useful issue that can be used to discuss the work and track the issues so I will delete any |
I will not be able to help with C or Rust, but once you have a working skeleton, you can count on me for extensive testing. |
Ping me if you need testers for this! This is huge! :) |
@chriseppstein This is fantastic news and would make many a Frontend Developer's Day! 😄 I know the nature of OSS timetables are…flexible but wondering if you have any ideas for when this may be completed? (in light of your first comment, feel free to delete this) |
Sorry, no dates at this time. |
I'm happy to lend any help I can in regards to Libsass. I'm also happy to contribute to compass c/rust side of things. |
An alternative approach would be to port Compass to Javascript and target only node-sass. This is less generally re-usable but it would make compass easier to contribute to. I'm still leaning towards having a core for compass that is statically compiled. |
I researched it and it turns out to not be that hard to embed resources like the sass files into a compiled binary. But it will require a custom importer to extract them from the executable without unpacking them -- though we will still need to provide a |
It would be too good if nobody were unhappy about this, right? As a happy Ruby user, i'm very concerned with what will happen to Ruby Compass. The matter is that Compass is an umbrella term for a number of entities:
After you migrate Compass off Ruby, what will be left of that? |
The only aspect of compass here that will be called into question is:
If by "effortlessly" you mean to ruby users using ruby code then that aspect will cease to exist. I hope to find a way for the "sass language" provide a standard mechanism for extensions that can be used in different implementations. I have started a conversation about this here: sass/sass#1608 |
we could even consider something like mruby: https://github.com/mruby/mruby |
+1 |
What's the status here @chriseppstein ? |
I'd vote for a simple C instead of C++/Rust/whatever. libsass does not require the client to be written in C. |
Im pretty sure we have transitioned away from this and are setting up suport for a compass like system on node-sass (libsass or node) using the https://github.com/sass-eyeglass/eyeglass project. |
@scottdavis you/they/we are? that's bad news, at least for me :S I have actually migrated systems away from compass, just because I can deploy libsass easily to my server infrastructure. |
Node/npm are a standard for web development. I can't imagine a modern web site/app developed without the use of Node. |
I can. |
A much higher percentage of Sass users know javascript than know ruby. As a result javascript is a vibrant ecosystem for front end tool development. In most user's stacks, node has become a must-have for front end tooling. Ruby sticks out in these applications like a sore thumb. The plan stated above made Compass even more inaccessible to our users because even fewer developers know C/C++, but eyeglass makes the core features of compass available in a much more accessible way which means our users can contribute to development and that's a huge win. I know not everyone will be happy about this. There's nothing I can do about that. This is progress and a big win for the Sass community at large. |
That’s exciting! It will very much simplify my readme files that I write with instructions for developers how to get the development toolchains up and running, and the issues those developers are then likely to run into it. For those of us who subscribed to this issue to know when we will be able to use Compass + libsass, is their another issue we could follow to get updated on the migration to node-sass (and the resulting compatibility with libsass)? Or is the Compass functionality only going to be installable as smaller NPM modules and no longer be recognizable as its current form? |
@acusti It is my goal that most compass projects could be ported to eyeglass with only minimal changes. What I'd like to see is an eyeglass-compass-compat module that provides a shim for compass-based stylesheets. In the javascript world, autoprefixer is a better solution than the css3 module, so there's currently no plan to port the css3 module to eyeglass, though obviously it is something that could be done by a member of the community. |
I've been using Autoprefixer with Ruby Compass first from npm, then from RubyGems. :P |
Hey Chris, Appreciate all the thought that went into here and think the resolution is a sound one. Just a little note — you may want to consider editing the description on this issue, as a quick read gives the impression Compass 2.0 with lib-sass support was released, and this is a top search result for “compass lib-sass.” Cheers. |
This issue will track the top level tasks that are required for Compass to be ported to libSass. When this issue is closed, we will release Compass 2.0.
Vision
Compass 2.0 will not use ruby and will run libSass for compilation by default. However, It will allow you to opt-in to using ruby sass.
TODO
libcompass
- a C++ library that can be used to compile a Sass file in a Compass-compatible Sass environment.compass
compiled binaries for mac, linux, and windows that implements a large subset of the commands supported by the ruby compass command including a watcher and sprite generator.The text was updated successfully, but these errors were encountered: