From 64750f4c7032b461614e22650e70b4e2219deed4 Mon Sep 17 00:00:00 2001 From: Thomas Van Lenten Date: Tue, 18 Aug 2015 15:17:45 -0400 Subject: Update the project for github migration - Update URL - Add README.md/License/Contributing info to be up to spec. - Remove a bunch of executable bits on sources. --- CONTRIBUTING.md | 54 ++++ COPYING | 202 -------------- LICENSE | 202 ++++++++++++++ README.md | 591 ++++++++++++++++++++++++++++++++++++++++ ReleaseNotes.txt | 588 --------------------------------------- iPhone/GTMFadeTruncatingLabel.h | 0 iPhone/GTMFadeTruncatingLabel.m | 0 7 files changed, 847 insertions(+), 790 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 COPYING create mode 100644 LICENSE create mode 100644 README.md delete mode 100644 ReleaseNotes.txt mode change 100755 => 100644 iPhone/GTMFadeTruncatingLabel.h mode change 100755 => 100644 iPhone/GTMFadeTruncatingLabel.m diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..faf7830 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,54 @@ +# How to contribute # + +We'd love to accept your patches and contributions to this project. There are +a just a few small guidelines you need to follow. + + +## Contributor License Agreement ## + +Contributions to any Google project must be accompanied by a Contributor +License Agreement. This is not a copyright **assignment**, it simply gives +Google permission to use and redistribute your contributions as part of the +project. + + * If you are an individual writing original source code and you're sure you + own the intellectual property, then you'll need to sign an [individual + CLA][]. + + * If you work for a company that wants to allow you to contribute your work, + then you'll need to sign a [corporate CLA][]. + +You generally only need to submit a CLA once, so if you've already submitted +one (even if it was for a different project), you probably don't need to do it +again. + +[individual CLA]: https://developers.google.com/open-source/cla/individual +[corporate CLA]: https://developers.google.com/open-source/cla/corporate + + +## Submitting a patch ## + + 1. It's generally best to start by opening a new issue describing the bug or + feature you're intending to fix. Even if you think it's relatively minor, + it's helpful to know what people are working on. Mention in the initial + issue that you are planning to work on that bug or feature so that it can + be assigned to you. + + 1. Follow the normal process of [forking][] the project, and setup a new + branch to work in. It's important that each group of changes be done in + separate branches in order to ensure that a pull request only includes the + commits related to that bug or feature. + + 1. Any significant changes should almost always be accompanied by tests. The + project already has good test coverage, so look at some of the existing + tests if you're unsure how to go about it. + + 1. Do your best to have [well-formed commit messages][] for each change. + This provides consistency throughout the project, and ensures that commit + messages are able to be formatted properly by various git tools. + + 1. Finally, push the commits to your fork and submit a [pull request][]. + +[forking]: https://help.github.com/articles/fork-a-repo +[well-formed commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html +[pull request]: https://help.github.com/articles/creating-a-pull-request diff --git a/COPYING b/COPYING deleted file mode 100644 index a95e82a..0000000 --- a/COPYING +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2007 Google Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b62c221 --- /dev/null +++ b/README.md @@ -0,0 +1,591 @@ +# GTM: Google Toolbox for Mac # + +**Project site**
+**Discussion group** + + +## Release History ## + +Release 2.0.?? +Changes since 1.6.0 +??-??-?? + +- Removed iPhone/GTMABAddressBook in favor of AddressBook/GTMABAddressBook. + +- Removed Foundation/GTMHTTPServer and UnitTesting/GTMTestHTTPServer, they + are going to go live with the fetcher used by GData (since they were done + for that testing). + +- Removed Foundation/GTMBase64 and Foundation/GTMNSData+Hex in favor of + Foundation/GTMStringEncoding. + +- Added Foundation/GTMURITemplate to support the pending standard. + +- Changed the xcconfig files so that the SDK and the minimum supported OS + version must be set in the project file. This is the model Apple is pushing + for and since they are removing older SDKs with each tool chain release it + has forced GTM into this model. By default the SDK will be set to the most + recent SDK installed. + +- Initial support for using the Xcode provided OCUnit/XCTest for unittesting on iOS. + Define GTM_IPHONE_USE_SENTEST or GTM_USING_XCTEST to 1 to use this. + GTM_IPHONE_USE_SENTEST is going to be deprecated shortly. + +- Removed support for Garbage Collection, leaving just the shell for other code + that might have depended on some of the constants/method GTM provided. + +- Removed GTMNSNumber+64Bit methods as obsolete. + + +Release 1.6.0 +Changes since 1.5.1 +18-August-2010 + +- Added GTMNSImage+SearchCache for fetching images based on a variety of + specification methods (path, OSType, etc) + +- Added GTMFadeTruncatingTextFieldCell, for eliding with a gradient + +- Added GTMWindowSheetController for creating and controlling tab-modal sheets. + +- Added GTMNSArray+Merge for merging one array into another with or without + a custom merging function, returning a new array with the merged contents. + +- Added GTMSignalHandler for simple signal handling (via kqueue/runloop). This + has gotten an api tweak, so some code that started using it will need + updating. Initial landing had a bug where it could leak memory due to + how CFRunLoops work, now fixed. + +- Fixed up GTMIPhoneUnitTestDelegate to be pickier about which tests it runs + +- Added GTMNSString+URLArguments to GTMiPhone + +- Added GTMHTTPFetcher and GTMHTTPServer to GTMiPhone + +- Made sure that build would work with iPhone device attached, and that all + tests run directly on the phone. + +- Added GTMValidatingContainers which are a set of mutable container classes + that allow you to have a selector on a target that is called to verify that + the objects being put into the container are valid. This can be controlled + at compile time so that you don't take the performance hit in a release build. + +- Added GTMPath, which represents an existing absolute path on the file system. + It also makes it very easy to construct new paths in the file system as well + as whole directory hierarchies. + +- Added GTMNSString+Replace for a common replacement need. + +- Added NSString+FindFolder for two comment helpers for building paths to common + locations. + +- Added GTMLargeTypeWindow for doing display windows similar to Address Book + Large Type display for phone numbers. + +- Removed GTMNSWorkspace+ScreenSaver as it has always been a little dodgy due + to it's dependencies on undocumented frameworks, and the ScreenSaver + framework doesn't play nicely in GC mode. + +- Added property methods to GTMHTTPFetcher. These are convenient alternatives + to storing an NSDictionary in the userData. + +- Renamed GTMDevLog.m to GTMDevLogUnitTestingBridge.m and added some more + comments where it comes into play to hopefully make it more clear that it + isn't needed in most cases. + +- Fixed a potential GTMHTTPFetcher crash on failed authentication. + +- Added a obj-c logging package, GTMLogger, for applications that want an + application level logging system. See GTMLogger.h, GTMLogger+ASL.h, and + GTMLoggerRingBufferWriter.h for what the basic system and two optional + additions can do. + +- Added GTMNSMakeUncollectable for forcing objects to survive in a GC world. + +- Added GTMCFAutorelease to make the [GTMNSMakeCollectable(cfFoo) autorelease] + simpler and clearer, it's now just GTMCFAutorelease(cfFoo), and works in + both GC and non-GC world. + +- Added GTMIsGarbageCollectionEnabled to GTMGarbageCollection.h. See the note + there for it's usage. + +- Disabled the unittests for things on top of NSAppleScript in a GC world since + Apple has bugs and it can crash. See the unittest for a note about it. + +- GTMStackTrace now can figure out ObjC symbols. Downside it is now ObjC only. + +- GTMFourCharCode can now be used with NSAppleEventDescriptors easily. + typeType, typeKeyword, typeApplSignature, and typeEnumerated all get + turned into GTMFourCharCodes. + +- Fixed up crash in GTMLoggerRingBufferWriter when used with GC on. + +- Significant updates to GTMNSAppleScript+Handler allowing you to + list all handlers and properties (including inherited) and cleans up + several errors in how scripting was being handled. + +- Added GTMGetURLHandler class that gives you a very easy way of supporting + Get URL events just by adding a key to your plists, and adding a single + method to your class. See GTMGetURLHandler.m for more details. + +- Added XcodeProject, AppleScript, and InterfaceBuilder Spotlight Plugins. + Allows you to index .xcodeproj, .scpt, .scptd, .xib, .nib, and + .aib files. See ReadMes beside individual projects in SpotlightPlugins. + +- Added GTMExceptionalInlines for dealing with cases where you get + warning: variable 'r' might be clobbered by 'longjmp' or 'vfork' + when using certain Apple inlined functions in @synchronized/@try blocks. + +- Updated to Xcode 3.1 so the GTM and iPhone project have the same baseline. + The code should work in other version of xcode, but the projects and + xcconfig files now use 3.1 features. + +- Added GTMABAddressBook which is a cocoa wrapper for the 'C' AddressBook + APIs on the iPhone. + +- Added several set environment variable statements to RunIPhoneUnitTest.sh + to encourage bugs to come out of the woodwork. + +- Added GTMTestTimer.h for doing high fidelity timings. + +- Added ability to control using zombies to iPhone unittest script. It can be + controlled by the GTM_DISABLE_ZOMBIES environment variable + +- Added ability to control termination to iPhone unittest script. It can be + controlled by the GTM_DISABLE_TERMINATION environment variable + +- Fixed several leaks found with leak checking enabled. + +- Updated the iPhone xcconfigs to support the different OS versions. + +- GTM_INLINE will make sure a function gets inlined, and provides a consistent + way for all GTM code to do it. + +- Added GTMDebugThreadValidation to allow you to enforce the fact that your + code must run in the main thread in DEBUG builds. + +- Updated some internals of the iPhone unittesting so it doesn't double print + the test descriptions, file names, or lines numbers of a test failure line. + Also includes the test names in the error output. + +- Changed the xcconfigs so that know it's easier to set different settings at + the different levels and not accidentally overwrite settings set at lower + levels in the "settings collapse". Also tightened up warnings significantly. + +- Changed how gtm_unitTestExposedBindingsTestValues works. If you have an + implementation of gtm_unitTestExposedBindingsTestValues in your own code + you will need to update to the new way of calling. See implementations in + GTMNSObject+BindingUnitTesting.m for details. + +- Added support for grabbing the build number for a particular OS in + GTMSystemVersion and easily comparing it to known build numbers, and switched + some types from in GTMSystemVersion from "int" to SInt32 to make 64 bit work + better. + +- Added support for SnowLeopard (10A96). We build cleanly with the 10.6 SDKs and + all radar checks were updated accordingly. Build All script was also updated + to build on SnowLeopard if you have the SDK available. + +- Turned off building ppc64 GTM because the SnowLeopard SDK currently + doesn't have ppc64 support, so SenTestCase isn't defined. This makes it + impossible to build the ppc64 10.5 config on SnowLeopard. We have left the + setting in the xcconfig for those of you who need it, but have disabled + it in the GTM project settings. + +- Turned on stack smashing protection on the debug builds for all Leopard + and above. + +- Added ability to easily do leak checking by defining the GTM_ENABLE_LEAKS + environment variable. It isn't on by default because several of Apple's + frameworks leak. You can work around these false positives by using the + GTM_LEAKS_SYMBOLS_TO_IGNORE environment variable. Also if you turn on leaks + make sure to turn off zombies by defining the GTM_DISABLE_ZOMBIES variable, + otherwise every memory allocation you do will look like a leak. + +- Added has ability to check if a script has an open handler to + GTMNSAppleScript+Handler. + +- GTMStackTrace support for building a trace from the call stack in an + NSException (for 10.5+ and iPhone). + +- GTMStackTrace works on 10.5+ (and iPhone) using NSThread to build the call + stack. + +- GTMLightweightProxy for breaking retain cycles. + +- Added GTM_EXTERN that makes it easier to mix and match objc and objc++ code. + +- Added GTMHotKeysTextField for display and editing of hot key settings. + +- Added GTMCarbonEvent for dealing with Carbon Events and HotKeys in a ObjC + like way. + +- Backported the Atomic Barrier Swap functions for Objective C back to Tiger. + +- Added a variety of new functions to GTMUnitTestingUtilities for checking + if the screensaver is in the way, waiting on user events, and generating + keystrokes. + +- If you are using any Carbon routines that log (DebugStr, AssertMacros.h) and + use GTMUnitTestDevLog, the log routines now go through _GTMDevLog so that + they can be caught in GTMUnitTestDevLog and verified like any _GTMDevLog calls + you may make. For an example of this in action see GTMCarbonEventTest.m. + Since we have turned this on, we have turned off using _debug frameworks + from the RunUnitTests.sh because it was reporting a pile of uninteresting + issues that were interfering with unittests. + +- Added GTMFileSystemKQueue. It provides a simple wrapper for kqueuing + something in the file system and tracking changes to it. Initial landing + had a bug where it could leak memory due to how CFRunLoops work, now fixed. + +- RunIPhoneUnitTest.sh now cleans up the user home directory and creates + a documents directory within it, used when requesting a NSDocumentDirectory. + +- Added GTMNSFileManager+Carbon which contains routines for path <-> Alias + conversion and path <-> FSRef conversion. + +- Added GTM_EXPORT as a standard way of exporting symbols. + +- Added GTMUnitTestDevLogDebug which extends GTMUnitTestDevLog to only look + for the messages in debug builds, to make it easier to validate messages + that are only present in debug builds. + +- Added GTM_SUPPORT_GC for controlling the inclusion of GC related code. + +- If you are using GTMUnitTestDevLog, it also tries to capture logs from + NSAssert. + +- Added GTM_FOREACH_OBJECT/GTM_FOREACH_KEY/GTM_FOREACH_ENUMEREE that uses + NSEnumerator and objectEnumerator/keyEnumerator on 10.4, but on 10.5+/iPhone + uses FastEnumeration. + +- GTMNSWorkspace+Running gives a variety of ways of determining the attributes + of running processes. + +- If the iPhone unittesting support is exiting when done, it now properly sets + the exit code based on test success/failure. + +- Added GTMNSObject+KeyValueObserving to make it easier on folks to do KVO + "correctly". Based on some excellent code by Michael Ash. + http://www.mikeash.com/?page=pyblog/key-value-observing-done-right.html + This has been added for iPhone and OS X. + +- Fixed up GTMSenTestCase on iPhone so that it has a description that matches + that of OCUnit. + +- Added GTMAbstractDOListener, GTMTransientRootProxy, and + GTMTransientRootPortProxy. These classes can be used to simplify the + use of distributed objects. GTMAbstractDOListener can be used to handle + connections from any type of port. GTMTransientRootProxy is designed for + using named connections while GTMTransientRootPortProxy is for connections + with supplied NSPorts. + +- Finally dropped GTMHTTPFetcher and GTMProgressMonitorInputStream, GData + versions now pretty much line up with these, so rather then both projects + maintaining them, we've dropped them and point folks at the gdata versions + which can be used independent of the rest of GData. + +- Changed gtm_createCGPath to gtm_cgPath in GTMNSBezier+CGPath. The path + returned is now autoreleased so you don't need to worry about releasing it. + +- Made some changes to the GTMNSObject+UnitTesting APIs. Specifically renamed + gtm_createUnitTestImage to gtm_unitTestImage. The value it returns is now + autoreleased, so no need to release it. Also change + gtm_createUnitTestBitmapOfSize:withData: to a C function. + +- Cleaned up GTM so that it passes the Clang checker without any warnings. + +- Added GTMLuminance for working with colors in HSL space easily. + +- Added GTMTheme for doing product wide theme modifications. + +- The Run*UnitTest.sh script now delete the current projects *.gcda files to + avoid coverage data warning when you edit source. If you do not want this to + occur, you can set GTM_DO_NOT_REMOVE_GCOV_DATA to a non-zero value. + +- Added OBJC_DEBUG_UNLOAD=YES, and OBJC_DEBUG_NIL_SYNC=YES to our unittest shell + scripts to try and flush out some more bugs. We have intentionally NOT turned + on OBJC_DEBUG_FINALIZERS because it spits out a lot of unnecessary false + positives. + +- Added GTMUILocalizer.m for automatically localizing nib files with strings. + +- Added better support for NSTabViews to GTMAppKit+UnitTesting. Previously we + didn't check the tabs, or recurse into the views. + +- Adds support for toolTips, accessibilityHelp and accessibilityDescription to + GTMAppKit+UnitTesting. This will break your UI tests based on the older + state information. + +- Added support for duration to GTMLargeTypeWindow mainly to make the unittests + run at a decent speed. + +- All calls to GTMNSAppleScript+Handler execute: calls will now actually + execute the script on the main thread. + +- Added gtm_launchedApplications to GTMNSWorkspace+Running. It is significantly + faster than calling [NSWorkspace launchedApplications] + +- Moved GTMABAddressBook out of iPhone and into the AddressBook directory, + because it now works on both the Desktop and the iPhone giving you a single + interface to do AddressBook work on both platforms. + +- Added GTMNSScanner+JSON for scanning out JSON objects and arrays. We don't + parse JSON as there are several other frameworks out there for doing that. + +- Fixed up GTMABAddressBook so that it will compile and run on Tiger as well. + This did mean some slight functional differences in terms of the + *WithCompositeNameWithPrefix methods as they can't do diacritic or width + insensitive search on Tiger, but this shouldn't affect most users. + +- Added GTMGoogleSearch to foundation to make doing google searches easier. + +- Added GTMUIImage+Resize for iPhone to conveniently handle generating resized + UIImages while preserving aspect ratios. + +- Added support for passing in a context object to some of the + GTMNSEnumerator+Filter routines. + +- Fixed up bug in GTMFileSystemKQueue where we were passing the kqueue argument + in incorrectly. Added appropriate tests. + +- Added NSMatrix to the UIState support. + +- Added NSMatrix and NSCell to GTMLocalizer support. + +- Added gtm_dictionaryWithHttpArgumentsString to NSDictionary+URLArguments. + +- Added GTMDebugKeyValueObserving category to NSObject. This makes debugging + KVO a little easier in some cases. To turn it on, set the "GTMDebugKVO" + environment variable to "1". It will output a lot of data about adding and + removing KVO observers, and when the values are actually changed. + +- Added better support for NSBox to GTMAppKit+UnitTesting. Previously we + didn't check any box specific attributes. + +- Updated how GTMNSObject+UnitTesting searches for files to include the Target + SDK from compile time. Also removed some of the formatting options so + try and make it simpler to follow. + +- Added GTMNSDictionary+CaseInsensitive, e.g. for use with HTTP headers. + +- Added GTMNSData+Hex for conversion to and from hex strings. + +- Added GTMNSNumber+64Bit for working with CGFloats, NSIntegers and + NSUIntegers using NSNumber on all supported SDKs. + +- Added GTMIBArray for building arrays in nib files. + +- Added SDEFCompiler.sh for making it easier to error check SDEFs at + compile time. See BuildScripts/SDEFCompiler.sh for details on how to set it + up. If you work with SDEFs at all, this one is worth checking out. + +- GTMNSAnimation+Duration.m adds support for checking for control and shift + keys when trying to decide how to calculate durations for animations. + +- Added Xcode configs for iPhone 2.2, 2.2.1, 3.0, 3.1, 3.1.2. + +- Added configurations GTMiPhone for all the new configs, updated the build + scripts to build all iPhone SDKs also. + +- RunMacOSUnitTests supports GTM_REMOVE_TARGET_GCOV_ONLY to have only gcda + removed from the target and not the whole project. + +- RunMacOSUnitTests supports GTM_ONE_TEST_AT_A_TIME to have only one test + run at a time to support global state (color sync profile, etc.). + +- Added the GTM XcodePlugin. This plugin enhances Xcode with the following + features: + - Cleanup line ending white space on saves. + See Xcode Preferences > Google panel to turn this on. + - Create Unit Test Executable. + Select a unittest target, and then select "Create Unit Test Executable" + from the project menu, and it will create an executable you can debug. + - Turn Code Coverage On + Turns on code coverage for the current target. Nice when working with + CoverStory. + - Show Code Coverage/Clean Code Coverage/Clean Project Coverage and Build + Utilities for working with CoverStory. + - Under the help menu, quick links to the Google Style guides, Radar, + and our favorite tech note. + + Note that you can see all the menu items that GTM Xcode Plugin has added by + turning on the "Show Icon on Menu Items" option in the Xcode Preferences > + Google panel. + +- iPhone unittests now print "Test Case '-[TEST SELECTOR]' started." before + each test. + +- Added GTMTypeCasting.h which gives you safer objective-c casts based on + C++ static_cast and dynamic_cast. + +- Added GTMStringEncoding which is a generic base 2-128 encoder/decoder with + support for custom character maps. + +- Added support for localizing binding options in GTMUILocalizer. + +- Cleaned up several leaks in tests and elsewhere. + +- Added PListCompiler.sh for compiling plists. + +- Added GTM_NSSTRINGIFY_MACRO for turning other macros into NSStrings. + +- Removed GTMTheme because it wasn't generic enough for inclusion in GTM, and + was never fully implemented + +- Added GTM_NONNULL, NS_RETURNS_RETAINED, and CF_RETURNS_RETAINED macrs to + support clang analysis. + +- Changed GTMStackTrace to put out a cleaner trace, and to work on 64 bit. + NOTE that if you are parsing this format, that it has changed. + eg 32 bit + #0 UnitTest - Foundation 0x0001c392 -[SenTest run] + and 64 bit + #0 UnitTest - Foundation 0x10010000001c3921 -[SenTest run] + +- Added GTMNSAnimatablePropertyContainer methods that allow you to stop + animations properly in 10.5. + +- Added gtm_imageByRotating for rotating a UIImage. Based on code by Trevor + Harmon: + http://vocaro.com/trevor/blog/wp-content/uploads/2009/10/UIImage+Resize.h + http://vocaro.com/trevor/blog/wp-content/uploads/2009/10/UIImage+Resize.m + +- Added support for creating uniquely named files and directories easily with + GTMNSFileHandle+UniqueName. + + +Release 1.5.1 +Changes since 1.5.0 +16-June-2008 + +- Fixed building tiger gcov with a directory path that contains a space. + + +Release 1.5.0 +Changes since 1.0.0 +13-June-2008 + +- Updated the project to Xcode 3. This is the only supported Xcode version + for the project. The code can build against the Tiger or Leopard SDKs, and + developers can pull individual files into a Xcode 2.x project and things + should work just fine. + +- Fixed up the prefix header of the project and prefix handing in the Unittest + Xcode Config. (thanks schafdog) + +- Fixed error in handling default compression for NSData+zlib + +- Changed name on API in NSString+XML and added another api to make this a + litte more clear. (thanks Kent) + +- GTMRegex + - Found and fixed a bug in the enumerators that was causing them to + incorrectly walk a string when using '^' in an expression. + - Added helpers for substring tests and unittests for the new apis. + - Added initializer that takes an outError to allow the collection of any + pattern parsing error message (in case the pattern came from a user and + complete error information is needed to message the user). + +- Added GTMScriptRunner for spawning scripts. + +- Added GTMNSFileManager+Path for two small helpers. + +- Added GTMNSWorkspace+ScreenSaver + +- Added GTMNSString+Data + +- added a common header (GTMDefines) for any common defines so the conditionals + are all in one place + +- Support for things compiling against the iPhone SDK + - Everything in the GTMiPhone project works in the iPhone + - Added iPhone xcconfig files + - Added iPhone unittests (See below) + +- More work on the UI unittests + - support pretty much any part of a UI + - support for CALayers + - full support for the iPhone + - the iPhone uses the same macro set at OCUnit, but has its own runtime + for running tests. + - extended capabilities of UIUnitTesting to be more flexible and give better + error reporting for states. + +- Renamed the actual framework to "GoogleToolboxForMac.framework" (it should + have matched the project on code.google.com from the start) + +- added a Debug-gcov target that will product debug bits with code coverage + support to check unittests, etc. + +- GTMDebugSelectorValidation to provide something to include in class impls + to get validation of object/selector pair(s) being implemented so you don't + have to wait for a runtime invocation failures. (especially useful for + things that take a success and failure selector so one doesn't always get + called) + +- added _GTMDevLog (really in GTMDefines) that are a set of macros that can be + used for logging. This allows any project to redefine them to direct logging + into its runtime needs. + +- Moved GTMGeometryUtils into Foundation from AppKit + +- Removed several HI* calls from GTMGeometryUtils as Carbon UI in general is + deprecated. + +- Xcode configs + - changed the layout to make it a little easier to tell how to use them. + - added Leopard or later configs + +- Unittest coverage greatly increased + +- Added RunMacOSUnitTests shell script. We run this script for starting up our + unittests because it turns on a variety of "enhancements" (such as zombies, + scribbling etc) to encourage our unittests to fail for us. + + https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=19915 + +- Remove NSColor+Theme and NSWorkspace+Theme as they are no longer needed for + testing things for unittests, instead GTMUnitTestingUtilities.m(Lines 64-79) + force the user settable things to ensure tests are consistent. + +- Added GTMBase64. + +- Added GTMHTTPFetcher and GTMProgressMonitorInputStream. + +- Moved the data files for unittests into subdirectories call TestData to + help make it a little easier to find files within the main directories. + +- GTMDelegatingTableColumn get an overhaul to match the 10.5 sdk so it's closer + to a dropin for previous sdks. + +- Added a lot of functionality to NSAppleEventDescriptor and NSAppleScript + allowing you to easily call labeled and positional handlers in an AppleScript, + get/set properties and get NSAppleEventDescriptors for most basic datatypes. + +- Added GTMFourCharCode for wrapping FourCharCodes in an ObjC object. Mainly for + use by the NSAppleEventDescriptor code, and also useful for storing them + in ObjC collection classes. + +- Added GTMStackTrace. + +- Added NSString+URLArguments and NSDictionary+URLArguments + +- Added GTMHTTPServer as a simple server but mainly for use in unittesting. + +- Added _GTMCompileAssert for doing compile time assertions to GTMDefines.h + +- Added GTMUnitTestDevLog and GTMTestCase for logging and tracking logs while + running unittests to verify what is being logged is what you expect. All + unittests should now inherit from GTMTestCase instead of SenTestCase to take + advantage of the new log tracking. See GTMUnitTestDevLog.h for details. + +- Extracted GTMIPhoneUnitTestDelegate from GTMIPhoneUnitTestMain.m to its own + file. Tests can now be run from another application. + + +Release 1.0.0 +14-January-2008 + +- Initial public release. Includes some simple utils, xcode configs, and + some support for doing unittests of graphical things. diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt deleted file mode 100644 index 986676e..0000000 --- a/ReleaseNotes.txt +++ /dev/null @@ -1,588 +0,0 @@ -Google Toolbox for Mac Release Notes - -Project site: http://code.google.com/p/google-toolbox-for-mac/ -Discussion group: http://groups.google.com/group/google-toolbox-for-mac - -Release 2.0.?? -Changes since 1.6.0 -??-??-?? - -- Removed iPhone/GTMABAddressBook in favor of AddressBook/GTMABAddressBook. - -- Removed Foundation/GTMHTTPServer and UnitTesting/GTMTestHTTPServer, they - are going to go live with the fetcher used by GData (since they were done - for that testing). - -- Removed Foundation/GTMBase64 and Foundation/GTMNSData+Hex in favor of - Foundation/GTMStringEncoding. - -- Added Foundation/GTMURITemplate to support the pending standard. - -- Changed the xcconfig files so that the SDK and the minimum supported OS - version must be set in the project file. This is the model Apple is pushing - for and since they are removing older SDKs with each tool chain release it - has forced GTM into this model. By default the SDK will be set to the most - recent SDK installed. - -- Initial support for using the Xcode provided OCUnit/XCTest for unittesting on iOS. - Define GTM_IPHONE_USE_SENTEST or GTM_USING_XCTEST to 1 to use this. - GTM_IPHONE_USE_SENTEST is going to be deprecated shortly. - -- Removed support for Garbage Collection, leaving just the shell for other code - that might have depended on some of the constants/method GTM provided. - -- Removed GTMNSNumber+64Bit methods as obsolete. - - -Release 1.6.0 -Changes since 1.5.1 -18-August-2010 - -- Added GTMNSImage+SearchCache for fetching images based on a variety of - specification methods (path, OSType, etc) - -- Added GTMFadeTruncatingTextFieldCell, for eliding with a gradient - -- Added GTMWindowSheetController for creating and controlling tab-modal sheets. - -- Added GTMNSArray+Merge for merging one array into another with or without - a custom merging function, returning a new array with the merged contents. - -- Added GTMSignalHandler for simple signal handling (via kqueue/runloop). This - has gotten an api tweak, so some code that started using it will need - updating. Initial landing had a bug where it could leak memory due to - how CFRunLoops work, now fixed. - -- Fixed up GTMIPhoneUnitTestDelegate to be pickier about which tests it runs - -- Added GTMNSString+URLArguments to GTMiPhone - -- Added GTMHTTPFetcher and GTMHTTPServer to GTMiPhone - -- Made sure that build would work with iPhone device attached, and that all - tests run directly on the phone. - -- Added GTMValidatingContainers which are a set of mutable container classes - that allow you to have a selector on a target that is called to verify that - the objects being put into the container are valid. This can be controlled - at compile time so that you don't take the performance hit in a release build. - -- Added GTMPath, which represents an existing absolute path on the file system. - It also makes it very easy to construct new paths in the file system as well - as whole directory hierarchies. - -- Added GTMNSString+Replace for a common replacement need. - -- Added NSString+FindFolder for two comment helpers for building paths to common - locations. - -- Added GTMLargeTypeWindow for doing display windows similar to Address Book - Large Type display for phone numbers. - -- Removed GTMNSWorkspace+ScreenSaver as it has always been a little dodgy due - to it's dependencies on undocumented frameworks, and the ScreenSaver - framework doesn't play nicely in GC mode. - -- Added property methods to GTMHTTPFetcher. These are convenient alternatives - to storing an NSDictionary in the userData. - -- Renamed GTMDevLog.m to GTMDevLogUnitTestingBridge.m and added some more - comments where it comes into play to hopefully make it more clear that it - isn't needed in most cases. - -- Fixed a potential GTMHTTPFetcher crash on failed authentication. - -- Added a obj-c logging package, GTMLogger, for applications that want an - application level logging system. See GTMLogger.h, GTMLogger+ASL.h, and - GTMLoggerRingBufferWriter.h for what the basic system and two optional - additions can do. - -- Added GTMNSMakeUncollectable for forcing objects to survive in a GC world. - -- Added GTMCFAutorelease to make the [GTMNSMakeCollectable(cfFoo) autorelease] - simpler and clearer, it's now just GTMCFAutorelease(cfFoo), and works in - both GC and non-GC world. - -- Added GTMIsGarbageCollectionEnabled to GTMGarbageCollection.h. See the note - there for it's usage. - -- Disabled the unittests for things on top of NSAppleScript in a GC world since - Apple has bugs and it can crash. See the unittest for a note about it. - -- GTMStackTrace now can figure out ObjC symbols. Downside it is now ObjC only. - -- GTMFourCharCode can now be used with NSAppleEventDescriptors easily. - typeType, typeKeyword, typeApplSignature, and typeEnumerated all get - turned into GTMFourCharCodes. - -- Fixed up crash in GTMLoggerRingBufferWriter when used with GC on. - -- Significant updates to GTMNSAppleScript+Handler allowing you to - list all handlers and properties (including inherited) and cleans up - several errors in how scripting was being handled. - -- Added GTMGetURLHandler class that gives you a very easy way of supporting - Get URL events just by adding a key to your plists, and adding a single - method to your class. See GTMGetURLHandler.m for more details. - -- Added XcodeProject, AppleScript, and InterfaceBuilder Spotlight Plugins. - Allows you to index .xcodeproj, .scpt, .scptd, .xib, .nib, and - .aib files. See ReadMes beside individual projects in SpotlightPlugins. - -- Added GTMExceptionalInlines for dealing with cases where you get - warning: variable 'r' might be clobbered by 'longjmp' or 'vfork' - when using certain Apple inlined functions in @synchronized/@try blocks. - -- Updated to Xcode 3.1 so the GTM and iPhone project have the same baseline. - The code should work in other version of xcode, but the projects and - xcconfig files now use 3.1 features. - -- Added GTMABAddressBook which is a cocoa wrapper for the 'C' AddressBook - APIs on the iPhone. - -- Added several set environment variable statements to RunIPhoneUnitTest.sh - to encourage bugs to come out of the woodwork. - -- Added GTMTestTimer.h for doing high fidelity timings. - -- Added ability to control using zombies to iPhone unittest script. It can be - controlled by the GTM_DISABLE_ZOMBIES environment variable - -- Added ability to control termination to iPhone unittest script. It can be - controlled by the GTM_DISABLE_TERMINATION environment variable - -- Fixed several leaks found with leak checking enabled. - -- Updated the iPhone xcconfigs to support the different OS versions. - -- GTM_INLINE will make sure a function gets inlined, and provides a consistent - way for all GTM code to do it. - -- Added GTMDebugThreadValidation to allow you to enforce the fact that your - code must run in the main thread in DEBUG builds. - -- Updated some internals of the iPhone unittesting so it doesn't double print - the test descriptions, file names, or lines numbers of a test failure line. - Also includes the test names in the error output. - -- Changed the xcconfigs so that know it's easier to set different settings at - the different levels and not accidentally overwrite settings set at lower - levels in the "settings collapse". Also tightened up warnings significantly. - -- Changed how gtm_unitTestExposedBindingsTestValues works. If you have an - implementation of gtm_unitTestExposedBindingsTestValues in your own code - you will need to update to the new way of calling. See implementations in - GTMNSObject+BindingUnitTesting.m for details. - -- Added support for grabbing the build number for a particular OS in - GTMSystemVersion and easily comparing it to known build numbers, and switched - some types from in GTMSystemVersion from "int" to SInt32 to make 64 bit work - better. - -- Added support for SnowLeopard (10A96). We build cleanly with the 10.6 SDKs and - all radar checks were updated accordingly. Build All script was also updated - to build on SnowLeopard if you have the SDK available. - -- Turned off building ppc64 GTM because the SnowLeopard SDK currently - doesn't have ppc64 support, so SenTestCase isn't defined. This makes it - impossible to build the ppc64 10.5 config on SnowLeopard. We have left the - setting in the xcconfig for those of you who need it, but have disabled - it in the GTM project settings. - -- Turned on stack smashing protection on the debug builds for all Leopard - and above. - -- Added ability to easily do leak checking by defining the GTM_ENABLE_LEAKS - environment variable. It isn't on by default because several of Apple's - frameworks leak. You can work around these false positives by using the - GTM_LEAKS_SYMBOLS_TO_IGNORE environment variable. Also if you turn on leaks - make sure to turn off zombies by defining the GTM_DISABLE_ZOMBIES variable, - otherwise every memory allocation you do will look like a leak. - -- Added has ability to check if a script has an open handler to - GTMNSAppleScript+Handler. - -- GTMStackTrace support for building a trace from the call stack in an - NSException (for 10.5+ and iPhone). - -- GTMStackTrace works on 10.5+ (and iPhone) using NSThread to build the call - stack. - -- GTMLightweightProxy for breaking retain cycles. - -- Added GTM_EXTERN that makes it easier to mix and match objc and objc++ code. - -- Added GTMHotKeysTextField for display and editing of hot key settings. - -- Added GTMCarbonEvent for dealing with Carbon Events and HotKeys in a ObjC - like way. - -- Backported the Atomic Barrier Swap functions for Objective C back to Tiger. - -- Added a variety of new functions to GTMUnitTestingUtilities for checking - if the screensaver is in the way, waiting on user events, and generating - keystrokes. - -- If you are using any Carbon routines that log (DebugStr, AssertMacros.h) and - use GTMUnitTestDevLog, the log routines now go through _GTMDevLog so that - they can be caught in GTMUnitTestDevLog and verified like any _GTMDevLog calls - you may make. For an example of this in action see GTMCarbonEventTest.m. - Since we have turned this on, we have turned off using _debug frameworks - from the RunUnitTests.sh because it was reporting a pile of uninteresting - issues that were interfering with unittests. - -- Added GTMFileSystemKQueue. It provides a simple wrapper for kqueuing - something in the file system and tracking changes to it. Initial landing - had a bug where it could leak memory due to how CFRunLoops work, now fixed. - -- RunIPhoneUnitTest.sh now cleans up the user home directory and creates - a documents directory within it, used when requesting a NSDocumentDirectory. - -- Added GTMNSFileManager+Carbon which contains routines for path <-> Alias - conversion and path <-> FSRef conversion. - -- Added GTM_EXPORT as a standard way of exporting symbols. - -- Added GTMUnitTestDevLogDebug which extends GTMUnitTestDevLog to only look - for the messages in debug builds, to make it easier to validate messages - that are only present in debug builds. - -- Added GTM_SUPPORT_GC for controlling the inclusion of GC related code. - -- If you are using GTMUnitTestDevLog, it also tries to capture logs from - NSAssert. - -- Added GTM_FOREACH_OBJECT/GTM_FOREACH_KEY/GTM_FOREACH_ENUMEREE that uses - NSEnumerator and objectEnumerator/keyEnumerator on 10.4, but on 10.5+/iPhone - uses FastEnumeration. - -- GTMNSWorkspace+Running gives a variety of ways of determining the attributes - of running processes. - -- If the iPhone unittesting support is exiting when done, it now properly sets - the exit code based on test success/failure. - -- Added GTMNSObject+KeyValueObserving to make it easier on folks to do KVO - "correctly". Based on some excellent code by Michael Ash. - http://www.mikeash.com/?page=pyblog/key-value-observing-done-right.html - This has been added for iPhone and OS X. - -- Fixed up GTMSenTestCase on iPhone so that it has a description that matches - that of OCUnit. - -- Added GTMAbstractDOListener, GTMTransientRootProxy, and - GTMTransientRootPortProxy. These classes can be used to simplify the - use of distributed objects. GTMAbstractDOListener can be used to handle - connections from any type of port. GTMTransientRootProxy is designed for - using named connections while GTMTransientRootPortProxy is for connections - with supplied NSPorts. - -- Finally dropped GTMHTTPFetcher and GTMProgressMonitorInputStream, GData - versions now pretty much line up with these, so rather then both projects - maintaining them, we've dropped them and point folks at the gdata versions - which can be used independent of the rest of GData. - -- Changed gtm_createCGPath to gtm_cgPath in GTMNSBezier+CGPath. The path - returned is now autoreleased so you don't need to worry about releasing it. - -- Made some changes to the GTMNSObject+UnitTesting APIs. Specifically renamed - gtm_createUnitTestImage to gtm_unitTestImage. The value it returns is now - autoreleased, so no need to release it. Also change - gtm_createUnitTestBitmapOfSize:withData: to a C function. - -- Cleaned up GTM so that it passes the Clang checker without any warnings. - -- Added GTMLuminance for working with colors in HSL space easily. - -- Added GTMTheme for doing product wide theme modifications. - -- The Run*UnitTest.sh script now delete the current projects *.gcda files to - avoid coverage data warning when you edit source. If you do not want this to - occur, you can set GTM_DO_NOT_REMOVE_GCOV_DATA to a non-zero value. - -- Added OBJC_DEBUG_UNLOAD=YES, and OBJC_DEBUG_NIL_SYNC=YES to our unittest shell - scripts to try and flush out some more bugs. We have intentionally NOT turned - on OBJC_DEBUG_FINALIZERS because it spits out a lot of unnecessary false - positives. - -- Added GTMUILocalizer.m for automatically localizing nib files with strings. - -- Added better support for NSTabViews to GTMAppKit+UnitTesting. Previously we - didn't check the tabs, or recurse into the views. - -- Adds support for toolTips, accessibilityHelp and accessibilityDescription to - GTMAppKit+UnitTesting. This will break your UI tests based on the older - state information. - -- Added support for duration to GTMLargeTypeWindow mainly to make the unittests - run at a decent speed. - -- All calls to GTMNSAppleScript+Handler execute: calls will now actually - execute the script on the main thread. - -- Added gtm_launchedApplications to GTMNSWorkspace+Running. It is significantly - faster than calling [NSWorkspace launchedApplications] - -- Moved GTMABAddressBook out of iPhone and into the AddressBook directory, - because it now works on both the Desktop and the iPhone giving you a single - interface to do AddressBook work on both platforms. - -- Added GTMNSScanner+JSON for scanning out JSON objects and arrays. We don't - parse JSON as there are several other frameworks out there for doing that. - -- Fixed up GTMABAddressBook so that it will compile and run on Tiger as well. - This did mean some slight functional differences in terms of the - *WithCompositeNameWithPrefix methods as they can't do diacritic or width - insensitive search on Tiger, but this shouldn't affect most users. - -- Added GTMGoogleSearch to foundation to make doing google searches easier. - -- Added GTMUIImage+Resize for iPhone to conveniently handle generating resized - UIImages while preserving aspect ratios. - -- Added support for passing in a context object to some of the - GTMNSEnumerator+Filter routines. - -- Fixed up bug in GTMFileSystemKQueue where we were passing the kqueue argument - in incorrectly. Added appropriate tests. - -- Added NSMatrix to the UIState support. - -- Added NSMatrix and NSCell to GTMLocalizer support. - -- Added gtm_dictionaryWithHttpArgumentsString to NSDictionary+URLArguments. - -- Added GTMDebugKeyValueObserving category to NSObject. This makes debugging - KVO a little easier in some cases. To turn it on, set the "GTMDebugKVO" - environment variable to "1". It will output a lot of data about adding and - removing KVO observers, and when the values are actually changed. - -- Added better support for NSBox to GTMAppKit+UnitTesting. Previously we - didn't check any box specific attributes. - -- Updated how GTMNSObject+UnitTesting searches for files to include the Target - SDK from compile time. Also removed some of the formatting options so - try and make it simpler to follow. - -- Added GTMNSDictionary+CaseInsensitive, e.g. for use with HTTP headers. - -- Added GTMNSData+Hex for conversion to and from hex strings. - -- Added GTMNSNumber+64Bit for working with CGFloats, NSIntegers and - NSUIntegers using NSNumber on all supported SDKs. - -- Added GTMIBArray for building arrays in nib files. - -- Added SDEFCompiler.sh for making it easier to error check SDEFs at - compile time. See BuildScripts/SDEFCompiler.sh for details on how to set it - up. If you work with SDEFs at all, this one is worth checking out. - -- GTMNSAnimation+Duration.m adds support for checking for control and shift - keys when trying to decide how to calculate durations for animations. - -- Added Xcode configs for iPhone 2.2, 2.2.1, 3.0, 3.1, 3.1.2. - -- Added configurations GTMiPhone for all the new configs, updated the build - scripts to build all iPhone SDKs also. - -- RunMacOSUnitTests supports GTM_REMOVE_TARGET_GCOV_ONLY to have only gcda - removed from the target and not the whole project. - -- RunMacOSUnitTests supports GTM_ONE_TEST_AT_A_TIME to have only one test - run at a time to support global state (color sync profile, etc.). - -- Added the GTM XcodePlugin. This plugin enhances Xcode with the following - features: - - Cleanup line ending white space on saves. - See Xcode Preferences > Google panel to turn this on. - - Create Unit Test Executable. - Select a unittest target, and then select "Create Unit Test Executable" - from the project menu, and it will create an executable you can debug. - - Turn Code Coverage On - Turns on code coverage for the current target. Nice when working with - CoverStory. - - Show Code Coverage/Clean Code Coverage/Clean Project Coverage and Build - Utilities for working with CoverStory. - - Under the help menu, quick links to the Google Style guides, Radar, - and our favorite tech note. - - Note that you can see all the menu items that GTM Xcode Plugin has added by - turning on the "Show Icon on Menu Items" option in the Xcode Preferences > - Google panel. - -- iPhone unittests now print "Test Case '-[TEST SELECTOR]' started." before - each test. - -- Added GTMTypeCasting.h which gives you safer objective-c casts based on - C++ static_cast and dynamic_cast. - -- Added GTMStringEncoding which is a generic base 2-128 encoder/decoder with - support for custom character maps. - -- Added support for localizing binding options in GTMUILocalizer. - -- Cleaned up several leaks in tests and elsewhere. - -- Added PListCompiler.sh for compiling plists. - -- Added GTM_NSSTRINGIFY_MACRO for turning other macros into NSStrings. - -- Removed GTMTheme because it wasn't generic enough for inclusion in GTM, and - was never fully implemented - -- Added GTM_NONNULL, NS_RETURNS_RETAINED, and CF_RETURNS_RETAINED macrs to - support clang analysis. - -- Changed GTMStackTrace to put out a cleaner trace, and to work on 64 bit. - NOTE that if you are parsing this format, that it has changed. - eg 32 bit - #0 UnitTest - Foundation 0x0001c392 -[SenTest run] - and 64 bit - #0 UnitTest - Foundation 0x10010000001c3921 -[SenTest run] - -- Added GTMNSAnimatablePropertyContainer methods that allow you to stop - animations properly in 10.5. - -- Added gtm_imageByRotating for rotating a UIImage. Based on code by Trevor - Harmon: - http://vocaro.com/trevor/blog/wp-content/uploads/2009/10/UIImage+Resize.h - http://vocaro.com/trevor/blog/wp-content/uploads/2009/10/UIImage+Resize.m - -- Added support for creating uniquely named files and directories easily with - GTMNSFileHandle+UniqueName. - - -Release 1.5.1 -Changes since 1.5.0 -16-June-2008 - -- Fixed building tiger gcov with a directory path that contains a space. - - -Release 1.5.0 -Changes since 1.0.0 -13-June-2008 - -- Updated the project to Xcode 3. This is the only supported Xcode version - for the project. The code can build against the Tiger or Leopard SDKs, and - developers can pull individual files into a Xcode 2.x project and things - should work just fine. - -- Fixed up the prefix header of the project and prefix handing in the Unittest - Xcode Config. (thanks schafdog) - -- Fixed error in handling default compression for NSData+zlib - -- Changed name on API in NSString+XML and added another api to make this a - litte more clear. (thanks Kent) - -- GTMRegex - - Found and fixed a bug in the enumerators that was causing them to - incorrectly walk a string when using '^' in an expression. - - Added helpers for substring tests and unittests for the new apis. - - Added initializer that takes an outError to allow the collection of any - pattern parsing error message (in case the pattern came from a user and - complete error information is needed to message the user). - -- Added GTMScriptRunner for spawning scripts. - -- Added GTMNSFileManager+Path for two small helpers. - -- Added GTMNSWorkspace+ScreenSaver - -- Added GTMNSString+Data - -- added a common header (GTMDefines) for any common defines so the conditionals - are all in one place - -- Support for things compiling against the iPhone SDK - - Everything in the GTMiPhone project works in the iPhone - - Added iPhone xcconfig files - - Added iPhone unittests (See below) - -- More work on the UI unittests - - support pretty much any part of a UI - - support for CALayers - - full support for the iPhone - - the iPhone uses the same macro set at OCUnit, but has its own runtime - for running tests. - - extended capabilities of UIUnitTesting to be more flexible and give better - error reporting for states. - -- Renamed the actual framework to "GoogleToolboxForMac.framework" (it should - have matched the project on code.google.com from the start) - -- added a Debug-gcov target that will product debug bits with code coverage - support to check unittests, etc. - -- GTMDebugSelectorValidation to provide something to include in class impls - to get validation of object/selector pair(s) being implemented so you don't - have to wait for a runtime invocation failures. (especially useful for - things that take a success and failure selector so one doesn't always get - called) - -- added _GTMDevLog (really in GTMDefines) that are a set of macros that can be - used for logging. This allows any project to redefine them to direct logging - into its runtime needs. - -- Moved GTMGeometryUtils into Foundation from AppKit - -- Removed several HI* calls from GTMGeometryUtils as Carbon UI in general is - deprecated. - -- Xcode configs - - changed the layout to make it a little easier to tell how to use them. - - added Leopard or later configs - -- Unittest coverage greatly increased - -- Added RunMacOSUnitTests shell script. We run this script for starting up our - unittests because it turns on a variety of "enhancements" (such as zombies, - scribbling etc) to encourage our unittests to fail for us. - - https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=19915 - -- Remove NSColor+Theme and NSWorkspace+Theme as they are no longer needed for - testing things for unittests, instead GTMUnitTestingUtilities.m(Lines 64-79) - force the user settable things to ensure tests are consistent. - -- Added GTMBase64. - -- Added GTMHTTPFetcher and GTMProgressMonitorInputStream. - -- Moved the data files for unittests into subdirectories call TestData to - help make it a little easier to find files within the main directories. - -- GTMDelegatingTableColumn get an overhaul to match the 10.5 sdk so it's closer - to a dropin for previous sdks. - -- Added a lot of functionality to NSAppleEventDescriptor and NSAppleScript - allowing you to easily call labeled and positional handlers in an AppleScript, - get/set properties and get NSAppleEventDescriptors for most basic datatypes. - -- Added GTMFourCharCode for wrapping FourCharCodes in an ObjC object. Mainly for - use by the NSAppleEventDescriptor code, and also useful for storing them - in ObjC collection classes. - -- Added GTMStackTrace. - -- Added NSString+URLArguments and NSDictionary+URLArguments - -- Added GTMHTTPServer as a simple server but mainly for use in unittesting. - -- Added _GTMCompileAssert for doing compile time assertions to GTMDefines.h - -- Added GTMUnitTestDevLog and GTMTestCase for logging and tracking logs while - running unittests to verify what is being logged is what you expect. All - unittests should now inherit from GTMTestCase instead of SenTestCase to take - advantage of the new log tracking. See GTMUnitTestDevLog.h for details. - -- Extracted GTMIPhoneUnitTestDelegate from GTMIPhoneUnitTestMain.m to its own - file. Tests can now be run from another application. - - -Release 1.0.0 -14-January-2008 - -- Initial public release. Includes some simple utils, xcode configs, and - some support for doing unittests of graphical things. diff --git a/iPhone/GTMFadeTruncatingLabel.h b/iPhone/GTMFadeTruncatingLabel.h old mode 100755 new mode 100644 diff --git a/iPhone/GTMFadeTruncatingLabel.m b/iPhone/GTMFadeTruncatingLabel.m old mode 100755 new mode 100644 -- cgit v1.2.3