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

Cleaning up Shoes repository #312

Closed
IanTrudel opened this issue Feb 7, 2017 · 50 comments
Closed

Cleaning up Shoes repository #312

IanTrudel opened this issue Feb 7, 2017 · 50 comments
Assignees
Labels
Milestone

Comments

@IanTrudel
Copy link
Collaborator

IanTrudel commented Feb 7, 2017

This task involves cleaning up Shoes repository. The following came up from email conversations with @ccoupe. Please, share your feedback and ideas here.

  • Name convention for Rake targets. Lets' say platform-version[-arch][-cross] where you could find windows-7-64bits, osx-sierra-cross, etc.
  • Remove unused, unsupported and unmaintained targets: darwin, mingw, osxgtk, xmsw32.
  • Remove unused and outdated static files: README.2008, README.2011, README.federales, Bloopsaphone, ftsearch, hpricot, JSON, manual-snapshots, old directories and old rakefiles at root directory.
  • (Re)move test files in root directory such as radar.ods and brownshoes.svg.

Anything else? @passenger94 , @dredknight ?

@IanTrudel IanTrudel added this to the 3.3.3 milestone Feb 7, 2017
@IanTrudel IanTrudel self-assigned this Feb 7, 2017
IanTrudel added a commit that referenced this issue Feb 7, 2017
Cleaning up static files such as old READMEs, manual-snapshots, and a
couple of rakefiles that don't belong here.
IanTrudel added a commit that referenced this issue Feb 7, 2017
Removed brownshoes.svg (duplicate) and moved radar.ods to bugs
directory.
IanTrudel added a commit that referenced this issue Feb 7, 2017
It's called old for a reason. No place for old in Shoes.
@IanTrudel
Copy link
Collaborator Author

IanTrudel commented Feb 7, 2017

bloopsaphone is unsupported by current targets and also unmaintained. Shall we remove?

One interesting thing about this extension is that it provides a Sound class and a Bloops class (a .blu sound player). There is a blu tuner source code online. Perhaps something @dredknight might like for his game.

@ccoupe would you mind trying to build this with one of your targets and see if it works? If you think it's worthwhile to keep or shall I remove it and all its references?

@IanTrudel
Copy link
Collaborator Author

The following steps are necessary to fully remove ftsearch from Shoes:

  • Include picky and yajl gems in Shoes by default (@ccoupe?)
  • Replace search.rb with search_picky.rb from Shoes eBook.
  • Generate and include Picky database on Shoes Manual for Shoes release
  • Remove ftsearch from various Rakefiles and Makefile.
  • Finally remove ftsearch directory.

@ccoupe
Copy link

ccoupe commented Feb 7, 2017

bloopsaphone

The problem was that it was never cross platform and uses a very old and low level lib. Sound in Linux has improved (more complex) since then but I'm not sure we can depend on one lib for all linux variants. I don't know what Windows provides now and of course there is OSX. At the time, no one would admit to using it or wanting to use it.

@IanTrudel
Copy link
Collaborator Author

Bloopsaphone is actually implemented using the very cross-platform PortAudio. It shouldn't be a stretch to make it work with updated libraries.

The point here would be to make it work on one platform and see if it's worthwhile. Otherwise, I could remove it for now, or just leave it there, and open an issue for a future Sound class implementation. We may explore PortAudio, OpenAL, LAME for MP3 support and so on. At a later time.

By the way, what is your take on ext vs implementing inside Shoes? For example, sqlite3, hpricot, ftsearch, chipmunk and bloopsaphone are all implemented in an ext. SVG and Charts are however implemented directly in Shoes core code.

IanTrudel added a commit that referenced this issue Feb 7, 2017
The target osxgtk is more than two years old and no longer maintained.
IanTrudel added a commit that referenced this issue Feb 7, 2017
The target xmsw32 is more than two years old and no longer maintained.
It has been superseded by GTK based GUI instead of native Win32.
IanTrudel added a commit that referenced this issue Feb 7, 2017
The target mingw is more than two years old and no longer maintained.
Because other Windows target may include mingw in their name and thus
share code with this target, its removal may be incomplete.
@IanTrudel
Copy link
Collaborator Author

IanTrudel commented Feb 7, 2017

Additional note on commit 3086cdc: the removal of mingw target may be only partial because the code extensively uses /mingw/ matching pattern, which means other targets may also share the code. For example, my previous Shoes building environment revel the RUBY_PLATFORM is i386-mingw32 which would match. Removing any further code related to mingw will require testing.

IanTrudel added a commit that referenced this issue Feb 7, 2017
The extension sav suggests it is a backup. No other reference to this
file can be found.
IanTrudel added a commit that referenced this issue Feb 7, 2017
The target darwin is more than two years old and no longer maintained.
It has been superseded by one or more targets: mavericks, snow,
xmavericks, xsnow and yosemite. Some code my be shared amongst them all,
resulting only in a partial removal of darwin target.
@IanTrudel
Copy link
Collaborator Author

Additional note on commit 1367cc2: the removal of darwin target may be only partial because the code extensively uses /darwin/ matching pattern, which means other targets (mavericks, snow, xmavericks, xsnow and yosemite) may also share the code. Removing any further code related to darwin will require testing.

IanTrudel added a commit that referenced this issue Feb 7, 2017
JSON has been superseded by Ruby's own JSON.
IanTrudel added a commit that referenced this issue Feb 7, 2017
Hpricot has been fully replaced and superseded by Nokogiri.
IanTrudel added a commit that referenced this issue Feb 7, 2017
ftsearch has been replaced and superseded by Picky.
@IanTrudel
Copy link
Collaborator Author

Additional note on commit f171c77: require building yajl-ruby from source. The new version of Shoes includes a new version of Ruby, which will not allow to gem install yajl-ruby without compiling. gem install yajl-ruby on Windows will attempt to build the gem and thus requires RubyInstaller DevKit available. Ultimately, both Picky and Yalj-Ruby should be included in Shoes release as mentioned above.

@ccoupe
Copy link

ccoupe commented Feb 7, 2017

Anyone who clones now, it going to get a build that won't work because the gems are not build for 3 or 4 platforms.

@IanTrudel
Copy link
Collaborator Author

You can revert it back if you feel strongly about this one. No problem. The commits are made in such way to make it easy to revert.

@ccoupe
Copy link

ccoupe commented Feb 7, 2017

Furthermore why are these commits showing up in #258 ? That doesn't seem correct.

@IanTrudel
Copy link
Collaborator Author

Furthermore why are these commits showing up in #258 ? That doesn't seem correct.

Uh? Not here. And your commit comment went on shoes/shoes instead of shoes3/shoes3. Some kind of Github bug? Maybe clear your browser cache?

IanTrudel added a commit that referenced this issue Feb 7, 2017
The extension org suggests it is a backup, not actually used.
@ccoupe
Copy link

ccoupe commented Feb 8, 2017

It may be a github bug. but the email of the commit I got was titled
Re: [shoes/shoes] Shoes Federales - 3.2 (#258) with a message body of

@BackOrder pushed 1 commit.

    5a7c046 Cleaning up static files for #312

—
You are receiving this because you are subscribed to this thread.
View it on GitHub or mute the thread.

Makes no sense: It's a re: of a shoes/shoes pull request that shoes/shoes will never answer. Wouldn't be in my browser cache since it was an email .

@ccoupe
Copy link

ccoupe commented Feb 8, 2017

Actually, it's not easy for me to rollback the commit since I didn't make it and I don't want sync my copy with github at this time.

IanTrudel added a commit that referenced this issue Feb 8, 2017
Revert ftsearch removal commit f171c77 for now. Commit again later.
@IanTrudel
Copy link
Collaborator Author

Actually, it's not easy for me to rollback the commit since I didn't make it and I don't want sync my copy with github at this time.

Not any easier for anyone. haha

No worries. Reverted for you.

@ccoupe
Copy link

ccoupe commented Feb 8, 2017

portaudio

Ah yes! I remember when when their 2.0 release broke my audio system for all apps on the linux box and caused one hell of cleanup problem to get 1.9 back. Wiki's by nature can be out of date but https://app.assembla.com/wiki/show/portaudio/Notes_about_building_PortAudio_with_MinGW is not so inspiring. Perhaps we could do something like vlc and detect if portaudio is installed and ffi into it but I am not inclined to build the .dll or .so and include them in Shoes. Please make a new issue if you want bloopsaphone because cleanup was the reason it is not it Shoes 3.

ccoupe pushed a commit that referenced this issue Feb 13, 2017
* move make/mingw/* to make/win32/loose/*
  a lot of code could be deleted - it's a placeholder target.
* more cosmetic changes to rake file outputs
* Might not such.
@IanTrudel
Copy link
Collaborator Author

IanTrudel commented Feb 14, 2017

This is very good. Things are getting clearer.

What do you think about moving fixed and bugs directories within Tests directory?

ccoupe pushed a commit that referenced this issue Feb 14, 2017
* ftsearch before picky was available.
* This little shoes app copies gem (and listed dependent gems)
  Into a directiory (so selecting picky will drag in all the gems
  it needs - except yajl-ruby - because one of them didn't list it.
* Like exe-shoes, this app is one that could be moved into cobbler
  'create a gempack' -- unwritten tar handling but should be simple for
  someone to do.
* It's not even 'developer friendly' but it'll work well enough
  Good project for someone.
@ccoupe
Copy link

ccoupe commented Feb 14, 2017

What do you think about moving fixed and bugs directories within Tests directory?

Unclear what my thoughts were for fixed/ (they could be just be merged into bugs/ ? or deleted?) Tests was intended for a place for automated tests to reside testunit or minitest stuff - a convention I broke by putting the plot tests in there - those are not automated tests, but they aren't user bug reports scripts either.

@IanTrudel
Copy link
Collaborator Author

Deleted would do provided they outlive their purpose. The idea is grouping files and directories. If you consider those have served their purpose, the remove.

@ccoupe
Copy link

ccoupe commented Feb 14, 2017

There is a new beta for Windows that includes all the picky gems for win7 as well as the ftsearach ext. This should allow you to test your help.rb. It would be 'very helpful' if you created a remote branch for the manual replacement code and issue pull requests on that brach.

@ccoupe
Copy link

ccoupe commented Feb 14, 2017

You want a win7-custom.yaml that has some additions

InclGems:
  - sqlite3
  - nokogiri-1.6.7.1-x86-mingw32
  - mini_portile2-2.0.0
  - byebug-8.2.1
  # - columnize-0.9.0
  - rb-readline-0.5.3
  - win32-shortcut-0.2.5
  # picky needs:
  - activesupport-5.0.0.1
  - concurrent-ruby-1.0.2
  - i18n-0.7.0
  - multi_json-1.12.1
  - picky-4.31.3
  - rack_fast_escape-2009.06.24
  - thread_safe-0.3.5
  - tzinfo-1.2.2
  - url_escape-2009.06.24
  - yajl-ruby-1.3.0

ccoupe pushed a commit that referenced this issue Feb 14, 2017
@IanTrudel
Copy link
Collaborator Author

It would be 'very helpful' if you created a remote branch for the manual replacement code and issue pull requests on that brach.

How do I do that? I am not familiar enough with GitHub on such topics. Not a big user of git either.

IanTrudel added a commit that referenced this issue Feb 14, 2017
@IanTrudel
Copy link
Collaborator Author

There is a new beta for Windows that includes all the picky gems for win7 as well as the ftsearach ext. This should allow you to test your help.rb.

Picky hasn't been included in the beta.

cshoes -g list

*** LOCAL GEMS ***

bigdecimal (1.2.6)
byebug (8.2.1)
io-console (0.4.3)
json (1.8.1)
mini_portile2 (2.0.0)
nokogiri (1.6.7.1 x86-mingw32)
psych (2.0.8)
rake (10.4.2)
rb-readline (0.5.3)
rdoc (4.2.0)
sqlite3-ruby (1.3.9)
win32-shortcut (0.2.5)

@ccoupe
Copy link

ccoupe commented Feb 14, 2017

Oops. I uploaded the wrong one. It's uploaded now. 24Mb is size.

@ccoupe
Copy link

ccoupe commented Feb 15, 2017

How do I do that? I am not familiar enough with GitHub on such topics. Not a big user of git either.

Gotta laugh - the irony is strong.It was you who convinced me to move to git. Because all the real projects do. Remember that? I learned from RTFM . A deep dive you have to go through but basically you create a local branch of your copy of the shoes repo - perhaps 'picky' for example.

You 'git checkout master' or 'git checkout picky' Not sure how your gui app does it but it should if' it's worth anything. So you chose picky and make some changes to that code branch you think should be saved. Now you need a remote branch (at github) so your local branch (picky .e.g) can be moved up to github. How that is done is a google search and trial and error. Then you can issue a pull request (PR) and I can merge approve/lgnore/deny your request and merge into the github master (may not be same a your master branch).

@passenger94 - is this almost correct?

You can issue a pull request (PR is the lingo)

@IanTrudel
Copy link
Collaborator Author

Gotta laugh - the irony is strong.It was you who convinced me to move to git. Because all the real projects do. Remember that?

Indeed, it is. You never wondered why I sent you code by email? The weird thing about Git is that it feels the need to be different and the commands are all weird. You'd think after using CVS, SVN and Mercurial for a very long while, I'd know how to use Git just as well. I'm mostly sticking to Github Desktop.

This was regardless a good move for Shoes. We have been able to successfully track changes in the code, track issues, and Shoes improved considerably since then.

Thanks for the pointers. Stay tuned.

@IanTrudel
Copy link
Collaborator Author

Forked shoes3 in https://github.com/BackOrder/shoes3

Already committed a working Picky replacement for ftsearch.

Now I have another pending commit (not yet in the repo) that removes ftsearch but no way to test it since new Windows target is not ready. Would you like me to commit to the fork and you can test on your system before making a pull request?

@ccoupe
Copy link

ccoupe commented Feb 16, 2017

removes ftsearch

No need for a delete commit. It should be as simple as remove one line in the custom-yaml files and rebuilding them all once I get all platforms with copies of the gems - tonight's task.

@ccoupe ccoupe self-assigned this Feb 16, 2017
@ccoupe ccoupe added the Normal label Feb 16, 2017
@IanTrudel
Copy link
Collaborator Author

Ah, it should be noted that there are several references to ftsearch all over the place. The list of files affected by the removal are make/make.rb, platform/nix/Makefile, Rakefile, every tasks.rb file and req directory.

@ccoupe
Copy link

ccoupe commented Feb 16, 2017

We can't know if the references are actually used. Lot's of dead code. Once you submit a PR for your picky using shoes.rb/help.rb and I can figure out how to merge it then it's my task to build all the Shoes and give them some simple manual tests. Then we can figure out what old ftsearch refs are not required.

@IanTrudel
Copy link
Collaborator Author

A pull request is currently pending for you. Let me know if you need help.

@IanTrudel IanTrudel modified the milestone: 3.3.3 Feb 20, 2017
@IanTrudel
Copy link
Collaborator Author

Let's not forget to move code from rakefile_mingw.rb to wherever it should go and subsequently remove the file from the root directory.

@IanTrudel
Copy link
Collaborator Author

The sample directory is growing. Shall we restructure? It would need some fix in Shoes Manual to include samples.

   Samples/
      Expert/
         ...
      Good/
         ...
      Simple/
         ...

@ccoupe
Copy link

ccoupe commented Feb 21, 2017

You may find that the manual (sidebar menu) doesn't allow that level (4)

IanTrudel added a commit that referenced this issue Feb 21, 2017
* Created expert, good and simple subdirectories.
* Moved relevent samples to their own directory.
* Allow samples to be visible in the root directory.
* Shared files are in the root directory.
@IanTrudel
Copy link
Collaborator Author

You may find that the manual (sidebar menu) doesn't allow that level (4)

It didn't stop me. :)

@ccoupe
Copy link

ccoupe commented May 14, 2017

Bloopsaphone should be a separate issue. Most of the above discussion above has been accomplished. Closing.

@ccoupe ccoupe closed this as completed May 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants