github pyfa-org/Pyfa v2.0.0b1
pyfa v2.0.0b1

latest releases: v2.61.3, v2.61.2, v2.61.1...
pre-release7 years ago

Greetings!

I am very excited to announce the first beta build of pyfa 2.0! That's right, pyfa's getting a major version bump! There's nothing drastically different about the mechanisms or UI; instead, this is mostly an update to get pyfa up to speed on a number of backend modernization, and features breaking changes for folks who develop for pyfa or simply run from source.

For the vast majority of users, you should be able to download the appropriate file just like normal and run it - please report any issues you run into while using this beta build! Note that this build will not use your current user database, but instead should create a new -py3-dev database. This build has the changes for v1.35.0 in it as well (Feb 2018 release with Assault Frig balances). There are a few known issues such as the about dialog being a simple version indicator, as well os some GUI funkiness, but feel free to open issues along when you notice these issues. For those interested in some more information, continue reading!

System notes

Windows

As always, there are packages specifically built for Windows. Simply download the appropriate file, and everything should be the same from there. There is no installer file as of yet, but it is planned! **Warning: ** Be careful when extracting the zip file - if you normally extract it on top of a previous version of pyfa and overwrite the files, you are bound to have problems. This is due to the different way pyfa is packaged now.

Tested on Windows 7 and 10

macOS

As with the Windows builds, macOS builds should simply be downloaded and run.

Tested with OS X 10.10, I am very interested in hearing from those using other versions!

Linux

From v2.0 onward, there will not be a separate -linux.zip file for pyfa, at least not initially and not in the same form as they previously were. This does not mean that Linux isn't supported! This zip file has always simply been a zip of the source code, with a single file added to it. However, every time we have a release, there is an option to download the source anyway, so it's always been redundant.

You should be able to get it to work on any distribution that supports Python 3.6 and wxPython 4. You may have to build wxPython manually since there isn't a Linux wheel available on pypi and it's still very new so it's probably not in your package manager either. Hopefully as it becomes more adopted, this will become easier (if you meet all the prerequisites, you should be able to simply do pip install wxPython and it will download the source, build, and install for you (YMMV). Please see here and here for more information on getting wxPython 4.0 working on Linux. I will be researching Linux binary builds as well that users can just download and run, no environment needed, but that's been put on the backburner for now (this is what will eventually be the -linux build)

I can provided limited support for Linux users having trouble getting pyfa up and running on their machines. Let me know if I can be of any help. Getting the correct environment up and running is definitely the biggest hurdle for you guys.

Highlights

Python 3

Python 3.3, usually considered the first production-ready version of Python 3, released in 2012. That's a pretty long time ago. pyfa was held back primarily due to wxPython, the GUI toolkit that we use, only supporting Python 2.7. Supporting a newer version of Python will let us take advantage of new features and efficiencies found in the latest releases.

pyfa currently supports Python >= 3.6. It may work for 3.5 and 3.4, maybe lower, but these are, as of yet, untested.

wxPython 4

wxPython is the GUI toolkit that pyfa uses. The past year and a half has seen a flurry of renewed activity within the Pheonix project, the codename for the initiative to completely rewrite the codebase from the ground up and support Python 3, culminating earlier this month with the official release of 4.0.0!

PyInstaller

The old build process for pyfa was a nightmare, and made it very difficult for us to update our builds. While the pyfa code changes between releases, the actual binaries and packages that ship with the release are usually months to years old. The reasons for this are long and convoluted, but the great news is that pyfa will now be built on-demand for Windows and macOS! This allows us to include new or updated packages when we need to.

A lot of the initial research into PyInstaller comes from Ebag, major Kudos to him!

Versioning

The release starts a new versioning scheme. We already used a X.Y.Z versioning scheme, but pre-releases were always kind of broken. from v2 onward, pyfa will be adopting PEP 440. This doesn't mean a whole lot to most folks, but might be interesting to those that following along with development.

master in Maintenance Mode

The Python 3 codebase currently resides in the py-3 branch, while master still contains the stable release branch using Python 2.7. The idea is to do a few pre-releases to get the bugs worked out, then merge the py-3 into master, where it will become the new stable. During this time, master will only receive bugfixes and data updates; all new development will be put towards the new codebase (for the most part, there's currently a few features in development that I know of that will probably get merged into master before the code change happens).

After py-3 becomes stable, the old codebase will be located on the py-2 branch and kept updated with bugfixes / data updates for a while, after which the old codebase will be archived in another repository. Windows and macOS users that use the provided builds don't need to worry too much about this though; the primary reason for all of this is to give those affected (Linux users / package maintainers / people that run pyfa from source) time to update their environments.

Additionally, while it is possible to have a program that supports both Python 2 and Python 3, pyfa is not such a program. I don't have the expertise to ensure that this is a thing that can happen, especially when we start utilizing some of 3's features - I have no idea how to keep it backward compatible. If someone else wants to take this on, I'm happy to look at pull requests for it.

Don't miss a new Pyfa release

NewReleases is sending notifications on new releases.