Package: phoebe
PHOEBE 2.4pip install phoebeINTRODUCTIONPHOEBE stands for PHysics Of Eclipsing BinariEs. PHOEBE is pronouncedfee-bee.PHOEBE 2 is a rewrite of the original PHOEBE code. For most up-to-date information please refer to the PHOEBE project webpage:http://phoebe-project.orgPHOEBE 2.0 is described by the release paper published in the Astrophysical Journal Supplement,Prša et al. (2016, ApJS 227, 29).  The addition of support for misaligned stars in version 2.1 is described inHorvat et al. (2018, ApJS 237, 26).  Interstellar extinction and support for Python 3 was added in version 2.2 and described inJones et al. (2020, ApJS 247, 63).  Inclusion of a general framework for solving the inverse problem as well as support for theweb and desktop clientswas introduced in version 2.3 as described inConroy et al. (2020, ApJS 250, 34), which also removes support for Python 2.  PHOEBE 2.4 improves on the geometry and ebai estimators, updates gaussian processes to use either scikit-learn or celerite2, and adds support for submitting compute or solver runs on external servers.  These updates and fitting "best practices" will be discussed in Kochoska et al., in prep.PHOEBE 2 is released under theGNU General Public License v3.The source code is available for download from thePHOEBE project homepageand fromgithub.The development of PHOEBE 2 is funded in part byNSF grant #1517474,NSF grant #1909109andNASA 17-ADAP17-68.DOWNLOAD AND INSTALLATIONThe easiest way to download and install PHOEBE 2 is by using pip (make sure you're using the correct command for pip that points to your python3 installation - if in doubt use something likepython3 -m pip install phoebe):pip install phoebeTo install it site-wide, prefix thepipcommand withsudoor run it as root.To download the PHOEBE 2 source code, use git:git clone https://github.com/phoebe-project/phoebe2.gitTo install PHOEBE 2 from the source locally, go to thephoebe2/directory and issue:python3 setup.py build
python3 setup.py install --userTo install PHOEBE 2 from the source site-wide, go to thephoebe2/directory and issue:python3 setup.py build
sudo python3 setup.py installNote that as of the 2.3 release, PHOEBE requires Python 3.6 or later.  For further details on pre-requisites consult thePHOEBE project webpage.GETTING STARTEDPHOEBE 2 has a fairly steep learning curve. To start PHOEBE from python, issue:python
>>> import phoebe
>>>As of the 2.3 release, PHOEBE also includes a desktop and web client user-interface which is installed independently of the python package here.  See thephoebe2-ui repositoryandphoebe-project.org/clientsfor more details.To understand how to use PHOEBE, please consult thetutorials, scripts and manualshosted on the PHOEBE webpage.CHANGELOG2.4.12 - build system updateupgrade the build system to pyproject.toml with setuptools as backend and pip as frontend.drop the dependency on the obsolete distutils module.swap nosetests for pytest.small build-related bugfixes throughout the code.2.4.11fix jktebop backend handling of mass-ratio and eccentricity for RVs.bumps version requirements in pip for numpy, scipy, astropy.allows sma@star and asini@star to flip to solve for qfixes handling of spots on rotating single stars.fixes constraint migration for 2.3 -> 2.42.4.10fixes implementation of gravitational redshift.fixes an unitialized value problem in gradients resulting in nans for effective temperatures.minor updates to passband exporting to support upcoming 2.5 release on the passbands server.allows setting SelectParameter to an array or tuple (in addition to a list).2.4.9 - asynchronous spots bugfixfixes bug introduced in 2.4.8 and ensures that temperatures are recomputed for spots when the star is rotating asynchronously.2.4.8 - spots optimization bugfixspots no longer force the mesh to be recomputed at each timepoint.updates for numpy compatibility and wider test matrix.2.4.7 - line profile bugfixfix bug where wavelength arrays that did not include the central wavelength were returning nans for fluxes.2.4.6 - potential to requiv TypeError bugfixfix bug where libphoebe was incorrectly raising an error suggesting the potential was out of bounds.2.4.5 - negative mass bugfixfix bug where mass could be set to a negative value causing constraints to resolve to nans.2.4.4 - constraint flipping bugfixfix bug where flipping Kepler's third law constraint multiple times would fail.fix bug when flipping requivsumfrac and requivratio constraints.2.4.3 - use_server with features bugfixfix typo that raised error when using use_server with features attachedadded newaddl_slurm_kwargsparameter to pass any options to slurm scheduler2.4.2 - l3 handling distance in absolute pblum_mode bugfixfix conversion between l3 and l3_frac to account for distance when pblum_mode
is absolutefix tagged phoebe version in cached bundles to avoid import warning2.4.1 - solver filtering and plotting bugfixfix filtering error when not explicitly passing solver to run_solverfix exposing analytic model from lc geometry estimatorfix phase-sorting when plotting solution from ebai estimator2.4.0 - solver and gaussian process improvements releaseadd support for differential evolution optimizer solveradd support for differential corrections optimizer solveroptimizers: ability to continue runs from previous solutions (for most optimizers)improvements to geometry and ebai estimators to use ligeor as a new built-in dependencygaussian processes now use celerite2 or scikit-learn instead of celeriteemcee sampler: additional plotting styles to check for convergence, checks to ensure starting sample is physical, and added ability to continue a previous run from any arbitrary iteration in a previous runnew support for running jobs on external servers via crimplclarified distinction between chi2 and mle2.3.63 - constraint feature bugfixfix bug where creating a custom constraint for parameters within features was not correctly identifying the constrained parameter and was raising an error when attempting to set the value of the constraining parameter.2.3.62 - attach_job ferr bugfixfix bug where error file was not properly loaded when retrieving error from external job2.3.61 - M1 compiler optimization bugfixremove compiler optimizations that are not portable to ARM architectures2.3.60 - passband timestamp bugfixcompare version strings instead of datetime to avoid some systems throwing an error when looking for passband updates.see also 2.3.13 release.2.3.59 - extinction constraint bugfixfixes extinction constraint when flipping to solve for Av2.3.58 - astropy 5.0 units bugfixfixes support for astropy 5.0 changes to unit physical types (see also 2.3.51).b.save now requires delayed and failed constraints to run before saving.2.3.57 - remove inadvertent typo while sampling distributionsintroduced in 2.3.552.3.56 - setup without m2r bugfixfixes installation (on some machines) where m2r is not installed2.3.55 - sample_distribution_collection index bugfixfixes handling distributions on array parameters within sample_distribution_collection and run_compute(sample_from).2.3.54 - distribution bugfixupdatesdistlto convert units with recent changes to astropy.  See also the changes in 2.3.51 and 2.3.52.fixes median introduced in 2.3.52 to act on distribution object instead of just arrays.2.3.53 - adopt_solution adopt_values bugfixadopting a solution withadopt_values=Truefor a sampler solver will now adopt the median from the samples rather than the mean, to be consistent with the central values reported by the distributions themselves.2.3.52 - run_all_constraints support for array parameters bugfixfixes new run_all_constraints (new in 2.3.51) method to work on array parameters (compute_times/compute_phases).2.3.51 - units physical type astropy update bugfixfixes parsing the physical type of a unit in latest releases of astropy.  Without this fix, some constraints may fail to run.implements a new b.run_all_constraints, which is now automatically called when importing from a file in case any constraints were in the failed state.2.3.50 - contact binary estimators bugfixrv_geometry: explicitly look for RVs attached to stars (not envelopes, which raised a lookup error).run_checks_solver: run compatibility checks between solver and hierarchies.  Contact binaries are not supported by lc_geometry or ebai, single stars are not supported by lc_geometry, ebai, or rv_geometry.2.3.49 - requivsumfrac flipping bugfixfix remaining cases for flipping requivsumfrac constraint (see 2.3.45 bugfix release for the partial fix for some, but not all, cases)migrate from Travis CI to GitHub actions for CI testing2.3.48 - mu atm out-of-bounds bugfixfixes atmosphere out-of-bounds error caused by mu that should be exactly 0 or 1, but numerically out-of-bounds.2.3.47 - calculate_lnp bugfixfixes calculate_lnp to more robustly handle parameter matching for both the constrained and unconstrained casefixes default_binary constructor when overriding label of the 'binary' orbitfixes typo in ellc backend for the period==1 case2.3.46 - rvperiodogram SB1 bugfixfixes handling of SB1s (RVs with a single component) in the rv_periodogram estimatoradds checks to forbid zeros in dataset sigmas2.3.45 - requivsumfrac constraint flipping bugfixfixes bug in flipping requivsumfrac constraint for requivratio when requiv of the secondary star is already constrained2.3.44 - add_component/figure bugfixfixes bug in assigning parameter tags when passing function (as kind) to add_component or add_figure.2.3.43 - RV SB1 residuals bugfixfixes silently ignoring component (while calculating residuals, chi2, etc) in an RV dataset in which times are provided, but observational RVs are not.improves error messages in calculate_residuals when resulting in no or more than one matches.2.3.42 - RV plotting bugfixfixes plotting RVs when compute_times is provided instead of times.  Previously would raise an error that the 'rvs' parameter could not be found as it is hidden in the dataset.2.3.41 - estimators missing sigmas bugfixfixes handling of default sigmas within LC estimators when no sigmas are provided in the dataset.2.3.40 - custom lnprobability bugfixfixes handling ofcustom_lnprobability_callablewhen passed torun_solver.  Previously an error was raised stating it was not a supported keyword argument and was not passed to the script correctly duringexport_solver.2.3.39 - optimizer progressbar and sample_from infinite failed samples bugfixfixes bug in increment size in progressbar for optimizers that appears to go past 100% before completionwhen running a forward model sampling from a distribution (or a solution), only allow 10 failed samples per draw before raising an error to prevent getting stuck in an infinite loop if the parameter space is unphysicaladd_compute(overwrite=True) now allows the existing tag to already exist in solutions (in addition to models)2.3.38 - mvgaussian uncertainties bugfixupdates distl to 0.3.1 which includes a fix to treat mvgaussian uncertainties from percentiles like other distribution typesforces updating kepler's third law constraint when importing a bundle from before 2.3.25 bugfix2.3.37 - add_distribution allow_multiple_matches bugfixfixes bug where tags on distributions were improperly applied when passingallow_multiple_matches=Truedisables run_compute progressbar within solversfixes typo in description of progress parameter2.3.36 - MPI passband directory bugfixfixes bug where running phoebe for the first time within MPI crashes due to each processor attempting to create the passband directory.2.3.35 - rotstar bugfixbugfix in equation for converting rotation period/frequency to potential that affects the shapes of rapidly rotating stars with distortion_method of 'rotstar'.single stars: implements the missing constraint for requiv_max for single star systems.2.3.34 - ebai and continue_from bugfixebai: map phases onto -0.5,0.5 interval after computing phase-shift and sending to ebaiemcee: cast fitted_uniqueids to list when applying wrap indices for continue_from2.3.33 - constrained and multivariate priors bugfixfixes handling of multivariate distributions as priorsrun_compute sample_from: use serial mode when sample_num is 1run_compute when passing solution instead of sample_from, default to sample_num=1 if adopt_distributions is Falseexport_solver: exclude unneeded distributions/solutions from the exported script to optimize filesizeexport_solver: adds (undocumented until 2.4 release) support for autocontinueexport_compute: do not require explicitly passing compute if only one exists matching the filtercalculate_lnp: include_constrained now defaults to True2.3.32 - phoebe-server bugfixfixes version of flask-socketio dependency to remain compatible with desktop clientensures path and query string are cast to string2.3.31 - SB1 with compute_times bugfixfixes fitting radial velocities where only one component has observations (SB1 system) and compute_times are provided.compute_residuals now returns an empty array when the corresponding times_array is empty, instead of raising an error2.3.30 - ld_coeffs fitting bugfixall fitting ld_coeffs.  Each coefficient is referenced by index and can be fit or have distributions attached independently.  Seetutorialfor more details.also fixes support forcustom constraintswhich can be used to link ld_coeffs between datasets of the same passband, for example.2.3.29 - adopt_solution bugfixdo not require passing solution to adopt_solution (when adopting distributions) if only one solution existsfix distribution_overwrite_all not defined error2.3.28 - solver checks bugfixexcludes datasets not supported in fitting (mesh, orb, lp, etc) from forward-model within inverse solvers.run_checks_solver now checks for nans in dataset arrays.2.3.27 - add_compute/solver overwrite bugfixfixes bug where passing overwrite to add_compute or add_solver raised an error if run_compute/run_solver already created a model/solution tagged with that same label.2.3.26 - multiprocessing bugfixallows disabling multiprocessing (or lowering the number of available processors).  Multiprocessing is used by default when not within MPI and when callingrun_computewithsample_fromorrun_solverwith solvers that support parallelization.  Some installations of multiprocessing on Mac may cause issues, in which case you can now for PHOEBE to run in serial mode.this introduces newphoebe.multiprocessing_off(),phoebe.multiprocessing_on(),phoebe.multiprocessing_get_nprocs(), andphoebe.multiprocessing_set_nprocs(n)functions, but the default behavior remains unchanged.2.3.25 - distribution propagation bugfixupdates distl to 0.2.0 release which includes support for retaining simultaneous sampling between copies of the same underyling distribution, increased precision on latex formatting of uncertainties, and maintaining labels during unit conversion.fix propagating distl distribution objects through constraints to arbitrary depth.update Kepler's third law constraint to be distl-friendly (1+q becomes q+1).parameter.get_distribution: new argumentdelta_if_noneto allow returning a delta function.  This is now the default behavior from within b.get/plot_distribution_collectionb.sample_distribution_collection: renameNargument tosample_size(but with backwards compatibility support forN).run_checks_solver now includes a warning if priors contain "around" distributions.2.3.24 - emcee continue_from bugfixskip nwalkers vs number of parameters check when continue_from is setfallback on twigs when original uniqueids not available (when attempting to continue from a solution loaded into a new bundle, for example)wrapping rules for angle parameters fallback on median of last iteration in the available chain when uniqueids do not match as the initializing distribution likely does not exist anymore2.3.23 - ellc flux-weighted RV vsini bugfixcompute vsini from syncpar and pass to RV to enable Rossiter-McLaughlin effect when rv_method='flux-weighted'.2.3.22 - trace plotting nanslice bugfixfix bug in plotting MCMC trace plots when any given chain is all nans.2.3.21 - estimators phase-bin bugfixfix bug resulting in a nanslice error when phase_bin is enabled within estimators resulting in a single entry in any given bin.  Now, sigmas will be ignored within the estimator in these cases with a warning in the logger.2.3.20 - legacy passband bugfixnow correctly maps passbands when using the legacy backend (only affects TESS and Tycho)falls back on PHOEBE atmospheres when needing to compute pblums internally for flux scaling prior to calling legacy backendfrom_legacy bugfix in parsing linear limb-darkening coefficientsexport_compute/export_solver: add commment warning against manually editing scriptfixes typo which raised error when rescaling passband-dependent mesh columns2.3.19 - passbands update available datetime string parsing bugfixsome systems fail to parse common datetime strings, resulting in inability to import phoebe when checking for available passband updates.  This now prints and logs an error message, but does not prevent import.checking for available passband updates on import now correctly respects the PHOEBE_ENABLE_ONLINE_PASSBANDS environment variable.failed online passbands connection error messages are now only included in the log once (per processor) to avoid spamming the log (but are shown by default when manually calling phoebe.list_online_passbands).2.3.18 - estimator.ebai with wide eclipse bugfix (attempt 2)actually fixes bug (see 2.3.13) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase.  Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.2.3.17 - optimizer MPI bugfixenables parallelization (per-time or per-dataset) for optimizers.2.3.16 - rv_geometry with different lengths bugfixfixes estimator.rv_geometry when primary and secondary component have different times.2.3.15 - alternate backends with l3_frac and dataset-scaled bugfixfix bug in applying l3_frac within dataset scaling (pblum_mode='dataset-scaled') when using alternate backends.2.3.14 - import_solution with uniqueid mismatch bugfixfix bug where falling back on twigs when importing a solution on a different bundle failed.  It is still suggested to save the bundle and import solutions on the bundle used when calling export_solver.2.3.13 - estimator.ebai with wide eclipse bugfixfix bug (but not really - see 2.3.18) that raised internal error when running ebai on an eclipse with width larger than 0.25 in phase.  Note that these systems will still return nans as ebai is not well-suited to these systems, but the internal error will no longer occur.2.3.12 - plot univariate distributions latex label bugfixfix bug in the latex labels on plots when converting from multivariate to univariate distributions.2.3.11 - continue_from run_checks bugfixfix bug where run_checks raised an error for an empty init_from if continue_from was set.2.3.10 - alternate backend atm bugfixfix bug where atm parameter was ignored during passband luminosity scaling while using an alternate backend, resulting in an atmosphere out-of-bounds error in some situations.2.3.9 - online passbands bugfixstop attempting to query online passbands after three failed attempts to avoid significant time cost otherwise.2.3.8 - plotting exclusion bugfixfix bug where datasets were excluded from plotting if not in any modelsfix syntax error in run_checks2.3.7 - kwargs errors bugfixfix small bugs that could raise errors when passing some filter kwargs torun_solverorsample_distribution_collection2.3.6 - GP run_checks bugfixfix check for presence of observational data during run_checks to only consider datasets with attached gaussian processes (GPs)2.3.5 - lp run_checks bugfixfix length comparison of flux_densities and wavelengths during run_checks2.3.4 - passband/extinction bugfixfixed Gordon extinction coefficient calculation in line with erratumhttp://dx.doi.org/10.1088/0004-637X/705/2/1320.added check to require updating affected-passbands (versions at tables.phoebe-project.org have been updated)removed duplicate Passband methods causing ld/ldint passband computations to fail2.3.3 - latex representation bugfixfix the latex representation string forfillout_factor,pot,pot_min,
andpot_maxparameters in a contact binary.2.3.2 - manifest to include readme bugfixmanually include README.md in MANIFEST.in to avoid build errors from pip2.3.1 - pip install bugfixremoves m2r as an (unlisted) build-dependency.  m2r is only required to build the submission to submit to pypi, but is not required to install or run phoebe locally.2.3.0 - inverse problem feature releaseAdd support for inverse problem solvers, including "estimators", "optimizers", and "samplers"Add support for attaching distributions (asdistlobjects) to parameters, including priors and posteriors.Add support forweb and desktop clientsvia a light-weight built inphoebe-server.Removed support for Python 2 (now requires Python 3.6+)Implement optional gaussian processes for light curvesImplement phase-maskingAdded official support forellcandjktebopalternate backendsPer-component and per-dataset RV offsetsFixed phasing in time-dependent systemsDistinction between anomalous and sidereal period in apsidal motion casesExtinction parameters moved from per-dataset to the system-levelAdded several new optional constraintsOverhaul of the run_checks frameworkUpdated scipy dependency to 1.7+Numerous small bugfixes and enhancements2.2.2 - kwargs bugfixfix overriding mesh_init_phi as kwarg to run_computefix pblum computation to not require irrad_method kwargfix bundle representation to exclude hidden parameters2.2.1 - g++/gcc version check bugfixImproves the detection of g++/gcc version to compare against requirements during setup.2.2.0 - extinction feature releaseAdd support for interstellar extinction/reddening.Support for Python 3.6+ in addition to Python 2.7+.Overhaul of limb-darkening with new ld_mode and ld_coeffs_source parameters.Overhaul of passband luminosity and flux scaling with new pblum_mode parameter, including support for maintaining color relations between multiple passbands.Ability to provide third light in either flux or percentage units, via the new l3_mode and l3_frac parameters.Support for computing a model at different times than the observations, via the new compute_times or computes_phases parameter.Transition from pickled to FITS passband files, with automatic detection for available updates.  The tables can now also be accessed via tables.phoebe-project.org.DISABLED support for beaming/boosting.Allow flipping Kepler's thrid law constraint to solve for q.Require overwrite=True during add_* or run_* methods that would result in overwriting an existing label.Constraint for logg.Account for time-dependence (dpdt/dperdt) in t0 constraints.2.1.17 - ignore fits passbands bugfixFuture-proof to ignore for passband files with extensions other than ".pb"
which may be introduced in future versions of PHOEBE.2.1.16 - eccentric/misaligned irradiation bugfixFixes bug where irradiation was over-optimized and not recomputed as needed for
eccentric or misaligned orbits.  Introduced in the optimizations in 2.1.6.2.1.15 - spots bugfixFixes 'long' location of spots on single stars.Fixes treatment of spots on secondary 'half' of contact systems.Fixes loading legacy files with a spot that has source of 0 due to a bug in legacy.Fixes overriding 'ntriangles' by passing keyword argument to run_compute.2.1.14 - contacts inclination RVs bugfixFixes the polar rotation axis for RVs in contact systems with non-90 inclinations
by re-enabling the alignment (pitch, yaw) constraints and enforcing them to be 0.2.1.13 - constraint flip loop bugfixFixes infinite loop when trying to flip esinw AND ecoswAdds ability to flip mass (Kepler's third law) to solve for qFixes bug introduced in 2.1.9 in which out-of-limits constrained parameters in
an envelope were being raised before all constraints could resolve successfully.2.1.12 - legacy ephemeris and kwargs checks bugfixFixes applying t0 when importing legacy dataset which use phase.Fixes ignoring other compute options when running checks on kwargs during run_compute.2.1.11 - legacy dataset import bugfixFixes loading legacy datasets which use phase (by translating to time with the current ephemeris).Fixes loading legacy datasets with errors in magnitudes (by converting to errors in flux units).Fixes plotting RV datasets in which only one component has times (which is often the case when importing from a legacy file).2.1.10 - ldint bugfixRemoves ldint from the weights in the computations of RVs and LPs.2.1.9 - limits bugfixFixes a bug where parameter limits were not being checked and out-of-limits errors not raised correctly.2.1.8 - mesh convergence bugfixFixes a bug where certain parameters would cause the meshing algorithm to fail to converge.  With this fix, up to 4 additional attempts will be made with random initial starting locations which should converge for most cases.2.1.7 - comparison operators bugfixFixes a bug where comparisons between Parameters/ParameterSets and values were returning nonsensical values.Comparing ParameterSets with any object will now return a NotImplementedErrorComparing Parameters will compare against the value or quantity, with default units when applicable.Comparing equivalence between two Parameter objects will compare the uniqueids of the Parameters, NOT the values.2.1.6 - optimization bugfixFixes a bug where automatic detection of eclipses was failing to properly fallback on only detecting the horizon.Introduces several other significant optimizations, particularly in run_compute.2.1.5 - single star get_orbits and line-profile bugfixFixes a bug in hierarchy.get_orbits() for a single star hierarchy which resulted in an error being raised while computing line-profiles.2.1.4 - freq constraint bugfixThis fixes the inversion of the frequency constraint when flipping to solve for period.2.1.3 - overflow error for semidetached systems bugfixSemi-detached systems could raise an error in the backend caused by the volume being slightly over the critical value when translating between requiv in solar units to volume in unitless/roche units.  When this numerical discrepancy is detected, the critical value is now adopted and a warning is sent via the logger.2.1.2 - constraints in solar units bugfixAll constraints are now executed (by default) in solar units instead of SI.  The Kepler's third law constraint (constraining mass by default) failed to have sufficient precision in SI, resulting in inaccurate masses.  Furthermore, if the constraint was flipped, inaccurate values of sma could be passed to the backend, resulting in overflow in the semi-detached case.Bundles created before 2.1.2 and imported into 2.1.2+ will continue to use SI units for constraints and should function fine, but will not benefit from this update and will be incapable of changing the system hierarchy.2.1.1 - MPI detection bugfixPHOEBE now detects if its within MPI on various different MPI installations (previously only worked for openmpi).2.1.0 - misalignment feature releaseAdd support for spin-orbit misalignmentAdd support for line profile (LP) datasetsSwitch parameterization from rpole/pot to requiv (including new semi-detached and contact constraints)Significant rewrite to plotting infrastructure to useautofigIntroduction ofnparraysupport within parametersSignificant rewrite to mesh dataset infrastructure to allow choosing which columns are exposedDistinguish Roche (xyz) from Plane-of-Sky (uvw) coordinatesAbility to toggle interactive constraints and interactive system checks independentlyImplementation of ParameterSet.tags and Parameter.tagsGeneral support for renaming tags/labelsExpose pblum for contactsExpose per-component r and rprojs for contacts (used to be based on primary frame of reference only)Fix definition of vgamma (see note in 2.0.4 release below)Remove phshift parameter (see note in 2.0.3 release below)Permanently rename 'long' parameter for spots (see note in 2.0.2 release below)Numerous other minor bug fixes and improvements2.0.11 - astropy version dependency bugfixSet astropy dependency to be >=1.0 and < 3.0 (as astropy 3.0 requires python 3)2.0.10 - legacy import extraneous spaces bugfixHandle ignoring extraneous spaces when importing a PHOEBE legacy file.2.0.9 - _default Parameters bugfixPreviously, after loading from a JSON file, new datasets were ignored by run_compute because the _default Parameters (such as 'enabled') were not stored and loaded correctly.  This has now been fixed.PS.datasets/components now hides the (somewhat confusing) _default entries.unicode handling in filtering is improved to make sure the copying rules from JSON are followed correctly when loaded as unicodes instead of strings.2.0.8 - contacts bugfixRemove unused Parameters from the BundleImprovement in finding the boundary between the two components of a contact system2.0.7 - legacy import/export bugfixHandle missing parameters when importing/exporting so that a Bundle exported to a PHOEBE legacy file can successfully be reimportedHandle importing standard weight from datasets and converting to sigma2.0.6 - unit conversion bugfixWhen requesting unit conversion from the frontend, astropy will now raise an error if the units are not compatible.2.0.5 - semi-detached bugfixFixed bug in which importing a PHOEBE legacy file of a semi-detached system failed to set the correct potential for the star filling its roche lobe.  This only affects the importer itself.Implemented 'critical_rpole' and 'critical_potential' constraints.2.0.4 - vgamma temporary bugfixThe definition of vgamma in 2.0.* is in the direction of positive z rather than positive RV.  For the sake of maintaining backwards-compatibility, this will remain unchanged for 2.0.* releases but will be fixed in the 2.1 release to be in the direction of positive RV.  Until then, this bugfix handles converting to and from PHOEBE legacy correctly so that running the PHOEBE 2 and legacy backends gives consistent results.2.0.3 - t0_supconj/t0_perpass bugfixFixed constraint that defines the relation between t0_perpass and t0_supconj.Implement new 't0_ref' parameter which corresponds to legacy's 'HJD0'.Phasing now accepts t0='t0_supconj', 't0_perpass', 't0_ref', or a float representing the zero-point.  The 'phshift' parameter will still be supported until 2.1, at which point it will be removed.Inclination parameter ('incl') is now limited to the [0-180] range to maintain conventions on superior conjunction and ascending/descending nodes.Fixed error message in ldint.Fixed the ability for multiple spots to be attached to the same component.Raise an error if attempting to attach spots to an unsupported component.  Note: spots are currently not supported for contact systems.2.0.2 - spots bugfixIf using spots, it is important that you use 2.0.2 or later as there were several important bug fixes in this release.'colon' parameter for spots has been renamed to 'long' (as its not actually colongitude).  For 2.0.X releases, the 'colon' parameter will remain as a constrained parameter to avoid breaking any existing scripts, but will be removed with the 2.1.0 release.Features (including spots) have been fixed to correctly save and load to file.Corotation of spots is now enabled: if the 'syncpar' parameter is not unity, the spots will correctly corotate with the star.  The location of the spot (defined by 'colat' and 'long' parameters) is defined such that the long=0 points to the companion star at t0.  That coordinate system then rotates with the star according to 'syncpar'.2.0.1 - ptfarea/pbspan bugfixDefinition of flux and luminosity now use ptfarea instead of pbspan.  In the bolometric case, these give the same quantity. This discrepancy was absorbed entirely by pblum scaling, so relative fluxes should not be affected, but the underlying absolute luminosities were incorrect for passbands (non-bolometric).  In addition to under-the-hood changes, the exposed mesh column for 'pbspan' is now removed and replaced with 'ptfarea', but as this is not yet a documented column, should not cause backwards-compatibility issues.2.0.0 - official release of PHOEBE 2.0PHOEBE 2.0 is not backwards compatible with PHOEBE 2.0-beta (although the interface has not changed appreciably) or with PHOEBE 2.0-alpha (substantial rewrite). Going forward with incremental releases, every effort will be put into backwards compatibility. The changes and important considerations of the new version will be detailed in the ChangeLog.If upgrading from PHOEBE 2.0-beta or PHOEBE 2.0-alpha, it is necessary to do a clean re-install (clear your build and installation directories), as the passband file format has changed and will not automatically reset unless these directories are manually cleared.  Contact us with any problems.QUESTIONS? SUGGESTIONS? CONCERNS?Contact us! Issues and feature requests should be submitted directly through GitHub'sissue tracker.  Additional questions or feature requests should be submitted viaGitHub PHOEBE2 discussionsorGitHub PHOEBE2-UI discussions. We are eager to hear from you, so do not hesitate tocontact us!