Here comes a Christmas gift for the PyS60 community from the Python for S60 team!
Python for S60 1.9.0 is now released.
You can download the release from maemo garage
https://garage.maemo.org/frs/?group_id=854
This release runs on S60 3rd edition, S60 3rd edition FP1, S60 3rd edition FP2 and S60 5th edition devices.
The release includes:
- Self signed device binaries for S60 3rd Ed and S60 3rd Ed FP2 (which will work even on S60 3rd Ed FP1 and S60 5th Ed devices respectively).
- Installer for Windows platform that includes
----- Getting started guide
----- PyS60 runtime sis
----- PythonScriptShell sis
----- Application packaging tool with GUI and README
----- Python HTML documentation updated with S60 module reference
- Archive package for Linux/Mac that includes
----- PyS60 runtime sis
----- PythonScriptShell sis
----- Application packaging tool with README
----- Python HTML documentation updated with S60 module reference
- Python source code
- OpenSSL source code
- PyQt source code
The Python runtime component and the PythonScriptShell packages are self signed with the user-grantable capability set.
The capability set for S60 3rd Ed is ReadUserData WriteUserData NetworkServices LocalServices UserEnvironment.
The capability set for S60 3rd Ed FP2 is ReadUserData WriteUserData NetworkServices LocalServices UserEnvironment Location.
Expectation management: THIS IS NOT A FINAL PRODUCT.
This is the first, rough release of a code-base that has been rewritten to a large extent. Just like we did with the 1.1.x and 1.3.x
series, this will start a new development series of relatively frequent 1.9.x releases. We want to involve you in the development and
testing process so that you can point out any sharp edges and pointy bits that the releases may have.
The idea is to expose the code to early testing and gather feedback so that the final PyS60 2.0 can be solid and fulfill YOUR needs.
Our targets for the final 2.0 are:
- Better usability for the developer and the end user:
- Easier runtime deployment. It must be possible for a developer to package their application in a way that the end user doesn't need
to think about the runtime installation. Note that we're not saying the end user doesn't have to _install_ the runtime, we're just saying
they don't need to _think_ about it.
- Easier tools installation and SIS packaging for Python applications. Especially packaging Python applications to SIS has proved to be pretty
tough with all the dependencies you need to install. The 1.9.0 release improves things with the new all-in-one installer that gives you the
packaging tool, the documentation and the SIS files you need for development in one package. The user-friendly Ensymble tool is now official,
and there is a GUI for one-button package creation.
- Easier and more robust ways to use and distribute 3rd party extension modules with your application. Free use of third party extensions is
one of the main advantages of Python, and we want to enable and encourage that. We'll improve the Ensymble packaging tool to automatically
bundle modules not included in the base runtime into your application SIS, as well as specify how a module author can distribute their
module to other developers so that the module can be easily used.
- Integrated HTML documentation: The S60 specific documentation is now a part of the full Python documentation so you no longer need to switch
between them.
- Reliability and compliance with the standard Python. We've put effort into automatic testing on multiple target platforms as well as fixing
any noncompliance revealed by Python's own regrtest.py test suite. The compliance isn't perfect yet, but it's much better than with the old
1.4.x code-base.
- Quicker start-up and smaller base runtime package size than with 1.9.0.
- Selected API additions. Qt support is definitely on the roadmap. Schedule we can't give yet.
- Support for non-Windows platforms for things other than C++ extension development. Already preliminary support is available in 1.9.0, which
contains an all-in-one archive that gives you the packaging tool, the documentation and the SIS files.
Now, on to what we have now - the 1.9.0 release.
Let's start with the bad news first. Here are some of the things that are worse in 1.9.0 than in 1.4.5:
- The interpreter start-up time is considerably longer than in 1.4.x. We'll optimize this.
- The runtime package is much bigger than with 1.4.x. This'll get smaller once we have the modified packaging model working - estimate is that
the final base runtime would be less than 1MB.
- There is an additional dependency to the OpenC libraries, which must be installed for the runtime to work.
- Sadly, S60 2.x devices are not supported by the new code-base, and never will be. This is because OpenC libraries aren't available for S60 2.x.
- This initial release is aimed at script developers, not extension developers, thus no plug-in to the C++ SDK is included. The C++ SDK plug-in
should follow soon.
- Binary compatibility between 1.9.x versions isn't guaranteed until 2.0. We won't break it without good reason, but it can happen.
But, on the brighter side:
- Python 2.5.1 core, with much better compliance to the standard Python than before. Most of the modules in the standard library are
included - basically almost all that make sense on this platform and even some that don't (for regression testing purposes). This
includes such goodies as the Expat XML parser, ftplib, smtplib, urllib2, xmlrpclib, SimpleHTTPServer, cPickle, asyncore and especially the
much more compliant socket module. Garbage collection is enabled, so there is no need to dismantle reference cycles anymore.
- Packaging Python applications to SIS files is much easier. The user-friendly Ensymble tool is now the official packaging tool, and we've made
a GUI for it so packaging your application is now just a button press away.
- The environment for SIS packaged applications is closer to the script shell environment, since the script shell is no longer a special case
but just a regular application packaged using the Ensymble tool. This should make testing your application easier.
- SIS packaged applications are now more robust:
- If the runtime is missing and you try to launch the application, a human readable error message is displayed instead of the application just
failing to start, like before.
- If the application raises an exception on start-up, the traceback is printed on the screen instead of the application quitting silently.
- The applications have a default text console just like in the script shell environment, so printing text using the print statement works the
same way in SIS packaged apps and the script shell.
- On S60 3rd Ed FP2 devices, access GPS out of the box without signing hassle! Since S60 3rd Ed FP2 devices now permit the Location capability
for self-signed applications, that capability is now enabled by default in the S60 3rd Ed FP2 binaries.
- Almost all of the old 1.4.x Python APIs are included. The rest should be added during the 1.9.x series.
Bug reports, patches and feature requests can be filed in mamemo garage. That's what we track regularly, not every thread in the discussion
board. If you post a bug report only in the DiBo, we might miss it.
Bugs: https://garage.maemo.org/tracker/?at...54&func=browse
Feature Requests: https://garage.maemo.org/tracker/?at...54&func=browse
When filing bugs, include the device you used, its firmware version (you can see this by entering *#0000# in the idle screen), the PyS60 version
and a minimal test case (if applicable).
For more details on reporting bugs refer the "Reporting Bugs" section of the Python documentation.
That's it for now. Try it out, send feedback and stay tuned for 1.9.1.
Happy hacking!
-- Python for S60 team


Reply With Quote








