WinterBoard: Difference between revisions

From iPhone Development Wiki
(adding category)
(note about DRM for themes)
 
(7 intermediate revisions by 2 users not shown)
Line 3: Line 3:
== How to report bugs in WinterBoard ==
== How to report bugs in WinterBoard ==


You'll want to provide a summary of the problem, and it's really helpful to include a specific example of the problem - which themes does this happen with? Can other people reproduce the same problem if they apply the same themes?
You'll want to provide a summary of the problem, and it's really helpful to include a specific example of the problem.


After you've gathered as much detail about the problem as you can, you can use the instructions in step #2 below to report the problem to saurik and other WinterBoard contributors. You can expect them to ask you some friendly questions to help them figure out if this is a real bug, what the problem is, and how to fix it.
''If a theming feature doesn't seem to be working:'' Which themes does this happen with? Can other people reproduce the same problem if they apply the same themes? Did this theme work on an older iOS version, and have you checked using WinterBoard's "Debug Logging" feature (under ''Advanced (For Themers)'' and using [http://theiphonewiki.com/wiki/System_Log syslog]) that you're theming the right images?
 
''If WinterBoard seems to be making SpringBoard crash (putting your device in Safe Mode):'' please grab a crash report using the Crash Reporter tool (available via BigBoss), paste the crash report on a service like [https://ghostbin.com/ Ghostbin], and give saurik the link to the paste. It helps to also explain the conditions that seem to cause the crash. It's common for crashes to actually be caused by something else, so before reporting this, it's good to first try uninstalling WinterBoard and seeing if the problem persists without WinterBoard installed.
 
When you've gathered as much detail about the problem as you can, you can use the instructions in step #2 below to report the problem to saurik and other WinterBoard contributors. You can expect them to ask you some friendly questions to help them figure out if this is a real bug, what the problem is, and how to fix it.


== How to contribute improvements to WinterBoard ==
== How to contribute improvements to WinterBoard ==
Line 15: Line 19:
Improvements that are usually very welcome:
Improvements that are usually very welcome:
* Adding back a feature that WinterBoard used to have.
* Adding back a feature that WinterBoard used to have.
* Fixing a bug in a current feature.
* Fixing a bug in a current feature. This includes fixing the default themes that come with WinterBoard, if they're broken in some way.
* Small fixes that are likely to be useful to most WinterBoard users.
* Small fixes that are likely to be useful to most WinterBoard users.


Improvements that saurik usually declines for WinterBoard:
Improvements that saurik usually declines for WinterBoard:
* Large new features that do something completely new with theming (these are usually better as separate packages).
* Large new features that do something completely new with theming. These are usually better as separate packages - [https://www.reddit.com/r/iOSthemes/comments/3cvuxu/discussion_winterboard_20/cszktrc here's a comment where saurik explains more about this option].
* Lockscreen-related improvements. (These are usually better for [[Cydget]], which is also [http://gitweb.saurik.com/cydget.git open source] and has a similar contributing process where the most important part is to get in contact with saurik and propose your change.)
* Lockscreen-related improvements. (These are usually better for [[Cydget]], which is also [http://gitweb.saurik.com/cydget.git open source] and has a similar contributing process where the most important part is to get in contact with saurik and propose your change.)
* Suggestions to add some kind of DRM protection for themes. In general centralized DRM implementations get cracked quickly since they're enticing, and since themes are fundamentally made of images, it'd also be easy for somebody to write a simple DRM bypassing tool that hooks UIImage construction and saves the files.


=== 2. Discuss with people to see if this likely to be a useful change ===
=== 2. Discuss with people to see if this likely to be a useful change ===


It's great to check your idea with saurik and other people who contribute to WinterBoard before spending a lot of time working on your idea. IRC is the main place where development discussion happens. It's a chat system, so it supports having a quick efficient interactive conversation with multiple people. See the [[IRC]] article for advice about how to use it, or use [https://kiwiirc.com/client/irc.saurik.com/#winterboard this web interface for #winterboard on irc.saurik.com]. It's best to stick around in the channel for a while after saying something (leave the website or your IRC client open for a few hours), so that people have a chance to respond.
It's great to check your idea with saurik and other people who contribute to WinterBoard before spending a lot of time working on your idea. IRC is the main place where development discussion happens. It's a chat system, so it supports having a quick efficient interactive conversation with multiple people. See [[How to use IRC]] for instructions (including a couple of ways to set up a long-term connection), or use [https://kiwiirc.com/client/irc.saurik.com/#winterboard this web interface for #winterboard on irc.saurik.com]. It's best to stick around in the channel for a while after saying something (leave the website or your IRC client open for a few hours), so that people have a chance to respond.


You can also contact other people who have contributed to WinterBoard, if you want advice and suggestions before getting in contact with saurik. See [http://cydia.saurik.com/info/winterboard/changelog.html WinterBoard's changelog] for an incomplete list: [https://twitter.com/iCykey Cykey], [https://twitter.com/thekirbylover thekirbylover], [https://twitter.com/Surenix Surenix], [https://twitter.com/nickfrey NickF], etc.
You can also contact other people who have contributed to WinterBoard, if you want advice and suggestions before getting in contact with saurik. See [http://cydia.saurik.com/info/winterboard/changelog.html WinterBoard's changelog] for an incomplete list: [https://twitter.com/iCykey Cykey], [https://twitter.com/thekirbylover thekirbylover], [https://twitter.com/Surenix Surenix], [https://twitter.com/nickfrey NickF], etc.
Line 30: Line 35:
If you tried IRC and didn't get a response, or if you really dislike using IRC, you can email saurik instead ([email protected]). Give your email a detailed subject line that mentions contributing to WinterBoard, so that he knows to open your email among the hundreds of emails he receives.
If you tried IRC and didn't get a response, or if you really dislike using IRC, you can email saurik instead ([email protected]). Give your email a detailed subject line that mentions contributing to WinterBoard, so that he knows to open your email among the hundreds of emails he receives.


=== 3. Gather specific details about the change ===
=== 3. Gather details about the change ===


For reference, WinterBoard's code is here: http://gitweb.saurik.com/winterboard.git
You don't need to submit a complete code patch. You only need to explain to saurik what the change is and how it could be implemented, such as the names of relevant functions and other important details. '''Example:''' Telling saurik a sentence at the level of "there is a class called _UIAssetManager that has some messages on it of the form imageWithName:idiom: and if you hook at that level it seems sufficient for theme artists" can be a great and useful contribution to WinterBoard.


You usually don't need to submit a complete code patch. You only need to explain to saurik what the change is and how it could be implemented, such as the names of relevant functions and other important details.
If you can write code for this, what saurik often finds most valuable is just getting a "proof of concept" that he can figure out how to integrate. saurik can write the necessary code and fit the patch into WinterBoard in the appropriate place.
 
If you can write code for this, what saurik often finds most valuable is just getting a "proof of concept" that he can integrate. saurik can write any necessary extra code and fit the patch into WinterBoard in the appropriate place.


=== 4. Contact saurik, propose the change, and discuss it with him ===
=== 4. Contact saurik, propose the change, and discuss it with him ===


You can follow the directions in step #2 to get in contact with saurik, propose your change, and discuss it with him and other people who contribute to WinterBoard. Yay!
You can follow the directions in step #2 to get in contact with saurik, propose your change, and discuss it with him and other people who contribute to WinterBoard. Yay!
== External links ==
* Source: http://gitweb.saurik.com/winterboard.git (git://git.saurik.com/winterboard.git)


[[Category:Cydia packages]]
[[Category:Cydia packages]]

Latest revision as of 02:48, 18 July 2015

WinterBoard is an open source theming tool by saurik, and he supports people contributing improvements to it. Here is how!

How to report bugs in WinterBoard

You'll want to provide a summary of the problem, and it's really helpful to include a specific example of the problem.

If a theming feature doesn't seem to be working: Which themes does this happen with? Can other people reproduce the same problem if they apply the same themes? Did this theme work on an older iOS version, and have you checked using WinterBoard's "Debug Logging" feature (under Advanced (For Themers) and using syslog) that you're theming the right images?

If WinterBoard seems to be making SpringBoard crash (putting your device in Safe Mode): please grab a crash report using the Crash Reporter tool (available via BigBoss), paste the crash report on a service like Ghostbin, and give saurik the link to the paste. It helps to also explain the conditions that seem to cause the crash. It's common for crashes to actually be caused by something else, so before reporting this, it's good to first try uninstalling WinterBoard and seeing if the problem persists without WinterBoard installed.

When you've gathered as much detail about the problem as you can, you can use the instructions in step #2 below to report the problem to saurik and other WinterBoard contributors. You can expect them to ask you some friendly questions to help them figure out if this is a real bug, what the problem is, and how to fix it.

How to contribute improvements to WinterBoard

1. Evaluate if this is likely to be a useful change

The following lists are just basic background information. You'll want to continue on to the next step unless it's really obvious to you that your proposal is not a good fit for WinterBoard.

Improvements that are usually very welcome:

  • Adding back a feature that WinterBoard used to have.
  • Fixing a bug in a current feature. This includes fixing the default themes that come with WinterBoard, if they're broken in some way.
  • Small fixes that are likely to be useful to most WinterBoard users.

Improvements that saurik usually declines for WinterBoard:

  • Large new features that do something completely new with theming. These are usually better as separate packages - here's a comment where saurik explains more about this option.
  • Lockscreen-related improvements. (These are usually better for Cydget, which is also open source and has a similar contributing process where the most important part is to get in contact with saurik and propose your change.)
  • Suggestions to add some kind of DRM protection for themes. In general centralized DRM implementations get cracked quickly since they're enticing, and since themes are fundamentally made of images, it'd also be easy for somebody to write a simple DRM bypassing tool that hooks UIImage construction and saves the files.

2. Discuss with people to see if this likely to be a useful change

It's great to check your idea with saurik and other people who contribute to WinterBoard before spending a lot of time working on your idea. IRC is the main place where development discussion happens. It's a chat system, so it supports having a quick efficient interactive conversation with multiple people. See How to use IRC for instructions (including a couple of ways to set up a long-term connection), or use this web interface for #winterboard on irc.saurik.com. It's best to stick around in the channel for a while after saying something (leave the website or your IRC client open for a few hours), so that people have a chance to respond.

You can also contact other people who have contributed to WinterBoard, if you want advice and suggestions before getting in contact with saurik. See WinterBoard's changelog for an incomplete list: Cykey, thekirbylover, Surenix, NickF, etc.

If you tried IRC and didn't get a response, or if you really dislike using IRC, you can email saurik instead ([email protected]). Give your email a detailed subject line that mentions contributing to WinterBoard, so that he knows to open your email among the hundreds of emails he receives.

3. Gather details about the change

You don't need to submit a complete code patch. You only need to explain to saurik what the change is and how it could be implemented, such as the names of relevant functions and other important details. Example: Telling saurik a sentence at the level of "there is a class called _UIAssetManager that has some messages on it of the form imageWithName:idiom: and if you hook at that level it seems sufficient for theme artists" can be a great and useful contribution to WinterBoard.

If you can write code for this, what saurik often finds most valuable is just getting a "proof of concept" that he can figure out how to integrate. saurik can write the necessary code and fit the patch into WinterBoard in the appropriate place.

4. Contact saurik, propose the change, and discuss it with him

You can follow the directions in step #2 to get in contact with saurik, propose your change, and discuss it with him and other people who contribute to WinterBoard. Yay!

External links