Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Fix docs missings & improve dev scripts #1981

Merged
merged 11 commits into from

3 participants

@LeoColomb
  • Move installation guide of specific platform in INSTALL.md instead of readme.txt
  • Leave all docs guides in docs folder
  • ...
@bilderbuchi
Owner

:+1: to the gitignore changes.

@LeoColomb

+1 to the gitignore changes.

@bilderbuchi Also, there are ~20 .gitignore into the openFrameworks repo. Is it not better if we mix/merge some of them in the main .gitignore, to clean directories, save place, avoid mis-understandable hierarchy and make easier to keep it up to date?


@arturoc What do think about this PR?

@bilderbuchi
Owner

@bilderbuchi Also, there are 17 .gitignore into the openFrameworks repo. Is it not better if we mix/merge some of them in the main .gitignore, to clean directories, save place, avoid mis-understandable hierarchy and make easier to keep it up to date?

this is only partly right - the "important" ones are only 4 - .gitignore, apps/.gitignore, addons/.gitignore, examples/.gitignore, and they are distributed like that to precisely avoid one huge gitignore file with a lot of special rules to only affect subpaths etc. Instead we have all the general ignore patterns in the root .gitignore file, and the subpath-relevant (e.g. for "official" addons) in the respective subpath.

most of the others are necessary placeholders to be able to check empty folders into the git repo (all thos with "Ignore everything in here apart from the .gitignore file" in them), or ignore files for specialist applications (e.g. /dev/style/) for which it would make no sense to pollute/bloat the more general gitignore files higher up in the tree.

@arturoc
Owner

looks great to me, are really there so many gitignores? in that case we should remove some but i think having gitignores in important folders like addons, examples and apps can be useful

@arturoc
Owner

didn't read this before:

most of the others are necessary placeholders to be able to check empty folders into the git repo (all thos with "Ignore everything in here apart from the .gitignore file" in them), or ignore files for specialist applications (e.g. /dev/style/) for which it would make no sense to pollute/bloat the more general gitignore files higher up in the tree.

to check empty folders we switched to a .gitkeep file in examples that's better cause that way we avoid ignoring the contents of that folder, if there's any folder with .gitignore still it should be changed to .gitkeep

@bilderbuchi
Owner

but sometimes you want to have empty folders in the repo, which stay empty (i.e. ignore everything except gitignore). gitkeep does not do this. example: the gitignores in the libs folders.

@bilderbuchi
Owner

that way we avoid ignoring the contents of that folder

that does not always make sense: if we wanted to not ignore content in that folder, the content would be in there and we wouldn't need a gitkeep. if not, the content is user-specific or autogenerated, and thus should not be in the repo. thus, the gitignore which ignores everything except itself.

gitkeep makes sense where we want to show users that e.g. there's a /data folder, but we don't use it for anything (i.e. the example doesn't put anything there), but without a dummy file in it we could not commit it as git does not see empty directories.

@bilderbuchi
Owner

the one which could be optimized away would be the one in SerialTest.
apps/devApps/VboExample/bin/data/.gitignore could be renamed .gitkeep cause it's empty

the ones in apps/devApps/AdvancedImageLoading and /libs/openFrameworksCompiled/lib/*/ could probably be optimized away, but you would have to replace them with gitkeep files, and some rules in the upper gitignores to not ignore those gitkeep files. number of files stays the same, number of rules grow, i'm not sure it would be worth it, since the current gitignore files are pretty explicit about what they do. if you wonder why you can't commit files which are in there, there's a gitignore file right there telling you why, instead of some special path-adapted rule in another gitignore 3 levels up the file tree.

@LeoColomb

the one which could be optimized away would be the one in SerialTest.

OK. Stupid question: did we need to keep the .elf & .hex files in serialTest?

@LeoColomb

@bilderbuchi @arturoc OK, so I tried something "just for fun", see my latest commits. What do you think about this?
If it's too bad, I revert it and I don't change anything.

@bilderbuchi
Owner

I'm sorry, I have to ask, how familiar are you with the gitignore logic?
Did you rigorously test your changes? Are you aware that files which are already in the repo are unaffected by gitignore rules? This means you have to create a lot of new mock files to test if your rule changes work properly. Are you aware of gitignore parsing order (i.e. ignore files deeper in the file tree override ones higher up)? btw, were you able to commit this without using the force/-f flag?

It's unfortunate that you put all your changes into one commit, this way it's really hard to isolate the good/neutral changes from the bad. There are some things in there which are ok and make sense. There are some redundant changes in there. There are some things which I think are wrong. Unfortunately I currently can't test this rigorously.

Also, these changes have nothing to do with this PR, but will keep it from being merged until this is resolved. A better way (for the future) is to submit a separate PR for a separate topic.

Considering how complicated it is/was to arrive at a working gitignore system (and this doesn't even consider people force-committing things improperly instead of correcting rules), I vote for removing these two commits. Actually, I'd prefer you to rebase them out of the PR. If you only revert, your commits/changes will pollute the git history (as you will show up as the last committer). Unfortunately, this could mean bad things for whoever pulled your branch in the meantime - another reason to follow our contribution policy and keep PR topics separated (especially if they're "just for fun").

In any case, I downloaded the patch files of your commits, so the work is not lost. Hopefully I'll get around to teasing out the good changes sometime, next time I streamline the gitignore structure.

@LeoColomb

Did you rigorously test your changes? Are you aware that files which are already in the repo are unaffected by gitignore rules? This means you have to create a lot of new mock files to test if your rule changes work properly. Are you aware of gitignore parsing order (i.e. ignore files deeper in the file tree override ones higher up)? btw, were you able to commit this without using the force/-f flag?

Yes, I do. I have tested it about 1 hours, make modifications in files, create new ones and new folder, modify hierarchy, ..., and try to commit all of this changes separately, and never use -force or something else to overwrite ignore' rules.
My conclusion is: it works great, but only one point isn't resolved yet: changes in official addons can't be committed without -force. Please note that is exactly the same situation as before those changes into gitignore files.

It's unfortunate that you put all your changes into one commit, this way it's really hard to isolate the good/neutral changes from the bad.

It's true, I'm sorry.

Also, these changes have nothing to do with this PR, but will keep it from being merged until this is resolved. A better way (for the future) is to submit a separate PR for a separate topic.

Right, I'm sorry. I will close this PR and create the same but without latest ignore diffs.

@LeoColomb

Edit: In fact, no problem in official addons.

@bilderbuchi
Owner

OK, thank you.

changes in official addons can't be committed without -force. Please note that is exactly the same situation as before those changes into gitignore files.

Are you sure? This is not correct afaik - I just tried and can edit e.g. ofxOsc without problems, and git will pick it up. Although I just realized that ofxSynth and ofxThreadedImageLoader are missing in the list of official addons.
edit: ah i see.

You know what, I'll open a new issue for the gitignore changes (edit: #2057), and we'll move the discussion over theree, collect all the problems, and then I'll make a PR based on your work.

@bilderbuchi bilderbuchi referenced this pull request
Closed

New .gitignore structure overhaul #2057

6 of 6 tasks complete
@LeoColomb

@bilderbuchi Rebasing succeeded. So, good to merge?

@bilderbuchi
Owner

looks good to me, but I can't judge the packaging script, but @arturoc seems to have already approved the changes?

@LeoColomb

Yes => here
Also, do you want I make a PR with my .gitignore changes?

@bilderbuchi
Owner

Also, do you want I make a PR with my .gitignore changes?

nah, I'll do that, I got your commits. some other stuff to fix anyway.

@LeoColomb

@arturoc so finally, is that good?

@arturoc
Owner

yes seems good to me

@bilderbuchi
Owner

@arturoc so will you merge it, or should I do it?

@arturoc arturoc merged commit 9b28735 into openframeworks:develop
@LeoColomb LeoColomb deleted the LeoColomb:Fix-Docs branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Mar 26, 2013
  1. Remove unusefull file

    LeoColomb authored
  2. Missing serial link

    LeoColomb authored
  3. Move export explanations in docs

    LeoColomb authored
Commits on Mar 28, 2013
  1. Unify uncapitalized titles

    LeoColomb authored
  2. Bad source for javascript on head template

    LeoColomb authored
  3. Improve create_package docs ref

    LeoColomb authored
    CodeBlocks link didn't get anything
  4. create_package clean up

    LeoColomb authored
    osxSL is not anymore a platform for building
Commits on Mar 30, 2013
  1. .o files already ignored

    LeoColomb authored
  2. _Examples_Moved.txt moved in docomentation

    LeoColomb authored
  3. Be sure all build's files are ignored

    LeoColomb authored
Commits on May 16, 2013
This page is out of date. Refresh to see the latest.
View
10 .gitignore
@@ -17,11 +17,11 @@ apps/*
# Some general ignore patterns
-build/
-obj/
+[Bb]uild/
+[Oo]bj/
*.o
-Debug*/
-Release*/
+[Dd]ebug*/
+[Rr]elease*/
*.mode*
*.app/
*.pyc
@@ -48,6 +48,8 @@ xcuserdata
*.opensdf
*.suo
*.pdb
+*.ilk
+*.aps
ipch/
#Eclipse
View
2  apps/.gitignore
@@ -9,8 +9,6 @@
/devApps/*/.project
/devApps/*/.settings/
-!_Examples_Moved.txt
-
# don't ignore the .gitignore file
!.gitignore
View
20 apps/_Examples_Moved.txt
@@ -1,20 +0,0 @@
-From 0071 onwards examples are now located in the root of OF at examples/
-This folder will remain as a place to work on your own apps.
-Just remember projects in apps/ still need to be two levels deep.
-
-So:
-
-apps/
- mySoundApp/
-
-will not work
-
-
-apps/
- soundApps/
- mySoundApp/
- miscApps/
- experiments/
-
-will work
-
View
7 docs/linux.md
@@ -151,5 +151,12 @@ issues, if you have some problem please post in the forum as much info
as possible.
+Libs
+----
+The `export/` folder contains necessary components that need to be exported with the application:
+contains .so (shared objects) that the app needs to run against this allows OF linux apps to be released in a very portable way
+users of the apps shouldn't need to install anything besides glut (which should be installed in most cases).
+
+
many thanks!! OFteam
View
1  docs/table_of_contents.md
@@ -20,6 +20,7 @@ Usage
About
-----
* [Libraries](libraries.md) — Details about libraries.
+* [Serial](serial.md) — Details about serial communication.
More
----
View
17 export/linux/readMe.txt
@@ -1,17 +0,0 @@
-
-OF linux:
-
-this folder contains necessary components that need to be exported with the application:
-
-libs
------- contains .so (shared objects) that the app needs to run against
------- this allows OF linux apps to be released in a very portable way
------- users of the apps shouldn't need to install anything besides glut
------- (which should be installed in most cases)
-
-clickToLaunchApp.sh
------- a shell script which runs the exe and set this variable:
------- LD_LIBRARY_PATH, so that the app looks locally for the .so
------- (shared objects) to run
-
-
View
17 export/linux64/readMe.txt
@@ -1,17 +0,0 @@
-
-OF linux:
-
-this folder contains necessary components that need to be exported with the application:
-
-libs
------- contains .so (shared objects) that the app needs to run against
------- this allows OF linux apps to be released in a very portable way
------- users of the apps shouldn't need to install anything besides glut
------- (which should be installed in most cases)
-
-clickToLaunchApp.sh
------- a shell script which runs the exe and set this variable:
------- LD_LIBRARY_PATH, so that the app looks locally for the .so
------- (shared objects) to run
-
-
View
4 other/serialTest/.gitignore
@@ -1,7 +1,3 @@
-#
applet/serialTest.cpp.eep
applet/serialTest.cpp.elf
applet/serialTest.cpp.hex
-
-# Building files
-*.o
View
2  scripts/dev/ci.template
@@ -1,3 +1,3 @@
-<h1>Continuous Integration</h1>
+<h1>continuous integration</h1>
<p>This page shows the results of a daily compile of openFrameworks and all the examples. If you see any error or warning and want to fix it, use github to send us a pull request with your changes</p>
<p>This tests are being run on linux 64bit so other platforms could have different errors/warnings even if they don't appear here</p>
View
47 scripts/dev/create_package.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# $1 -> platform: win_cb, linux, linux64, vs, osx, osxSL, ios, all
+# $1 -> platform: win_cb, linux, linux64, vs, osx, ios, all
# $2 -> version number: 006
platform=$1
@@ -15,12 +15,6 @@ PG_BRANCH=master
hostArch=`uname`
-#if [ "$platform" = "osxSL" ]; then
-# platform="osx"
-# runOSXSLScript=1
-# echo "will make changes for snow leopard"
-#fi
-
if [ "$platform" != "win_cb" ] && [ "$platform" != "linux" ] && [ "$platform" != "linux64" ] && [ "$platform" != "vs" ] && [ "$platform" != "osx" ] && [ "$platform" != "android" ] && [ "$platform" != "ios" ] && [ "$platform" != "all" ]; then
echo usage:
echo ./create_package.sh platform version
@@ -33,7 +27,7 @@ if [ "$version" == "" ]; then
echo usage:
echo ./create_package.sh platform version
echo platform:
- echo win_cb, linux, linux64, vs, osx, android, all
+ echo win_cb, linux, linux64, vs, osx, android, ios, all
exit 1
fi
@@ -127,12 +121,8 @@ function createPackage {
#remove previously created package
cd $pkg_ofroot/..
- #if [ $runOSXSLScript = 1 ]; then
- # rm -Rf of_v${pkg_version}_osxSL*
- #else
- rm -Rf of_v${pkg_version}_${pkg_platform}.*
- rm -Rf of_v${pkg_version}_${pkg_platform}_*
- #fi
+ rm -Rf of_v${pkg_version}_${pkg_platform}.*
+ rm -Rf of_v${pkg_version}_${pkg_platform}_*
echo "creating package $pkg_platform $version in $pkg_ofroot"
#remove devApps folder
@@ -381,47 +371,28 @@ function createPackage {
fi
- #download and copy OF compiled
- cd $pkg_ofroot/libs/openFrameworksCompiled/lib/${pkg_platform}
- if [ "$pkg_platform" = "win_cb" ]; then
- wget http://openframeworks.cc/git_pkgs/OF_compiled/${pkg_platform}/openFrameworks.lib
- wget http://openframeworks.cc/git_pkgs/OF_compiled/${pkg_platform}/openFrameworksDebug.lib
- fi
-
-
- #if snow leopard change 10.4u to 10.5
- #if [ $runOSXSLScript = 1 ]; then
- # cd $pkg_ofroot
- # echo "replacing 10.4u with 10.5 for snow leopard"
- # find . -name '*.pbxproj' | xargs perl -pi -e 's/10\.4u/10\.5/g'
- # pkg_platform="osxSL"
- #fi
-
#choose readme
cd $pkg_ofroot
if [ "$platform" = "linux" ] || [ "$platform" = "linux64" ]; then
- mv docs/linux.md readme
+ cp docs/linux.md INSTALL.md
fi
if [ "$platform" = "vs" ]; then
- mv docs/visualstudio.md readme
+ cp docs/visualstudio.md INSTALL.md
fi
if [ "$platform" = "win_cb" ]; then
- mv docs/codeblocks.md readme
+ cp docs/codeblocks.md INSTALL.md
fi
if [ "$platform" = "osx" ] || [ "$platform" = "ios" ]; then
- mv docs/osx.md readme
+ cp docs/osx.md INSTALL.md
fi
if [ "$platform" = "android" ]; then
- mv docs/android.md readme
+ cp docs/android.md INSTALL.md
fi
- rm readme.*
- mv readme readme.txt
-
rm CONTRIBUTING.md
#copy empty example
View
2  scripts/dev/head.template
@@ -2,7 +2,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script src="http://openframeworks.cc/js/shCore.js" type="text/javascript"></script>
<script src="http://openframeworks.cc/js/shAutoloader.js" type="text/javascript"></script>
-<script src="http://openframeworks.cc}/js/shBrushCpp.js" type="text/javascript"></script>
+<script src="http://openframeworks.cc/js/shBrushCpp.js" type="text/javascript"></script>
<script src="http://openframeworks.cc/js/shBrushJava.js" type="text/javascript"></script>
<script src="http://openframeworks.cc/js/shBrushXml.js" type="text/javascript"></script>
<link href="http://openframeworks.cc/css/shCore.css" rel="stylesheet" type="text/css" />
View
2  scripts/dev/nightlybuilds.template
@@ -1,4 +1,4 @@
-<h1>Nightly builds</h1>
+<h1>nightly builds</h1>
<p>Here you can find a daily build of the develop branch of openFrameworks. This downloads can be unstable, if you want the latest stable release look in the <a href="http://openframeworks.cc/download">downloads page</a></p>
<h2>Latest Nightly</h2>
Something went wrong with that request. Please try again.