numixproject / numix-gtk-theme

A modern flat theme with a combination of light and dark elements.
GNU General Public License v3.0
1.2k stars 227 forks source link

[important] Ruby Sass is deprecated #734

Closed ghost closed 4 years ago

ghost commented 5 years ago

Hello, I don't know if you're aware, but we receive this message when we use gem install sass:

Ruby Sass is deprecated and will be unmaintained as of 26 March 2019.

Maybe you can try pure "sassc" too, it's what Materia GTK dev uses as a build dep. If we don't have to install Ruby and its dev headers, it's better imo.

khurshid-alam commented 5 years ago

Thanks.

We will use whatever saas available to distro/package maintainer. Debian/Uuntu will still have ruby-sass. And sassc seems good choice too.

ktb83 commented 4 years ago

@khurshid-alam I made it work using sassc. Would you accept a pull request?

It looks like all the distros you support have packages for sassc.

khurshid-alam commented 4 years ago

Yes. Of course. This is long due.

ktb83 commented 4 years ago

@khurshid-alam Will you take care of updating the Build It instructions in the README.md file or do you want that as part of the pull request also?

khurshid-alam commented 4 years ago

Yes also update the build instruction for readme.

ktb83 commented 4 years ago

@khurshid-alam There is an alternative to changing the "widgets/button" import directive to be a relative path ("../widgets/button") in the gtk-3.20 _gnome-terminal.scss file. The sassc -I option can be used to set the import path like this: sassc -M -t expanded -I src/gtk-3.20/scss/ src/gtk-3.20/scss/gtk.scss src/gtk-3.20/dist/gtk.css

Would you prefer that? I'm actually not sure why that "widgets/button" import directive even exists in the gtk-3.20 _gnome-terminal.scss file. Is there a reason for that? Apparently it was added in this commit -- https://github.com/numixproject/numix-gtk-theme/commit/82568c7554df4b1688eae3ed50d03f80ddd12d9b#diff-123dfec8eaf04a82a44c8079fc9988b4

Maybe it should just be removed?

khurshid-alam commented 4 years ago

If variables are expanding properly, then yes you can remove that. But relative path is also working. No ?

ktb83 commented 4 years ago

The relative path works fine, but my point is that "widgets/button" is already imported in _widgets.scss. This means that including it again in _gnome-terminal.scss results in nothing more than extra comments being placed in the final CSS files as seen here:

/* password warning */
#greeter_infobar {
  font-weight: bold; }

/*********
 ! Buttons
**********/
/******************
! ComboBoxes *
*******************/
/**********************
 ! Genome Terminal *
***********************/
VteTerminal {
  background-color: #444;
  color: #eee; }

This behavior is not specific to SassC. This happens whether using Ruby Sass or SassC to compile the CSS files. The redundant CSS code never makes it into the final file, just some extra comments are added. That's why I don't understand why that "widgets/button" import directive exists in _gnome-terminal.scss. I wondered if there was some other reason to have it there.

In fact, _button.scss is imported several times throughout all the scss files, resulting in several of these extra comments:

/*********
 ! Buttons
**********/
/******************
! ComboBoxes *
*******************/
/*********
 ! Buttons
**********/
/******************
! ComboBoxes *
*******************/
/*********
 ! Toolbar
**********/
/*********
 ! Buttons
**********/
/******************
! ComboBoxes *
*******************/
/*********
 ! Infobar
**********/
/*********
 ! Buttons
**********/
/******************
! ComboBoxes *
*******************/
/**********
 ! Notebook
***********/
/*********
 ! Buttons
**********/
/******************
! ComboBoxes *
*******************/
/*******
 ! OSD *
********/
/*********
 ! Buttons
**********/
/******************
! ComboBoxes *
*******************/
/*********
 ! Toolbar
**********/
/***************
 ! Generic views
****************/
khurshid-alam commented 4 years ago

Sorry for late reply. But I have checked it, it works without "widgets/button". So it can be removed.

ktb83 commented 4 years ago

@khurshid-alam I have added a commit which removes the "widgets/button" import. Thank you.