Astro-App-Satpass2

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

0.057		2025-07-24	T. R. Wyant
    Fix error handling in height() command and add testing to try to
    ensure it stays fixed.

    Add CONTRIBUTING and SECURITY.

0.056		2025-05-24	T. R. Wyant
    Do not set iridium_status_format on Astro::SpeceTrack when
    constructing a new object. This attribute was eliminated when the
    Celestrak web site ditched the underlying data.

0.055		2025-01-04	T. R. Wyant
    Add autocomplete to 'show' command.

    Rename all .tt files to tt2.

    Read files encoded rather than binmode() so I can specify :crlf on
    Windows machines.

    Go from linux.die.net to man7.org for man links because the latter
    does not block Perl and therefore foil Test::Pod::LinkCheck::Lite.

    Do not trim object name to 24 chars in pass_ics template.

    Harden ::Macro::Code command discovery.
    The problem was that in the case of inlineable subroutines (i.e. 'use
    constant ...' a reference to the value was the actual value, not the
    subroutine .. i.e. a REF, not a GLOB. So when tried to dereference the
    CODE slot we blew up.

0.054		2024-03-31	T. R. Wyant
    Prefer Astro::Coord::ECI::Utils::gm_strftime to POSIX::strftime
    because the behavior of POSIX::strftime when formatting GMT changed in
    Perl 5.39.8, and is no longer compatible with the libc implementation,
    which does not alter the components given it. This requires
    Astro::Coord::ECI::Utils version 0.131.

    Convert testing to Test2::V0.

0.053		2023-12-12	T. R. Wyant
    Fix clobbering of $VERSION by casual stringy eval.

0.052		2023-10-14	T. R. Wyant
    Document the first_tle() Template array method.

    Fix pass() --almanac for evening passes.

0.051		2023-09-11	T. R. Wyant
    Without DateTime, ParseTime::ISO8601 now accepts any zone. These are
    handled by setting $ENV{TZ} before the conversion and hoping for the
    best. The documentation warns that this is a shaky way to handle
    zones.

    Make Warner->wail() stack dump if $Carp::Verbose true.

    Add --almanac to pass(). This adds almanac data to appropriate
    passes. --ephemeris is more verbose, adding almanac data to all
    passes. This change involved refactoring event formatting to use
    sub-templates, rather than if-elsif-else chains.

    Add 'none' as valid argument to FormatTime->round_time(). It is
    equivalent to specifying undef, i.e. no rounding.

0.050		2022-09-28	T. R. Wyant
    Silence DM5 deprecation warnings.

    More consistent testing of time parsing, primarily of DM6 and the
    hand-rolled ISO parsing.

    Fix Blead error, as of 6a011f13d7690dbe2e03ad7500756c983bcb1834

    Add completion for formatter command.

    Correct processing of options specified as hash refs to be more like
    the processing of command-style options.

    Have template pass_ics pay attention to --magnitude.

0.049		2021-11-04	T. R. Wyant
    Add command completion if Term::ReadLine::Perl is available. This
    adds command, macro, and option completion to Term::ReadLine::Perl's
    file name completion. The macro() and sky() commands also do
    subcommand name completion.

    The macro() command no longer does a 'list' if it does not recognize

Changes  view on Meta::CPAN

    Fix test failure under Perl 5.8.

    Make macros sensitive to error_out setting.  And a few other places
    like choose().

    Get prerequisites up to snuff and add xt/author/prereq.t to ensure
    they stay that way.

0.046		2021-01-08	T. R. Wyant
    Add Travis CI testing.

    Use GitHub as bug tracker. R.I.P. rt.cpan.org.

    Add attribute 'refraction', which specifies whether atmospheric
    refraction is taken into account.

0.045		2020-08-02	T. R. Wyant
    Remove prototypes from the testing subroutines defined in t/*.t and
    inc/My/Module/Test/*.pm

    Add -default to provide default values for positional arguments.
    This works on any method that calls __arguments().

    Add -am and -pm options to pass(). These select either morning or
    evening passes respectively. The default is both if neither is
    present. They can be negated, but it is an error to negate both.
    Note that this is a filter -- all passes are computed, but only the
    desired ones are displayed.

0.044		2020-02-16	T. R. Wyant
    Replace time_gm() & time_local() with greg_time_*() from
    Astro::Coord::ECI::Utils. The latter always interpret the year as
    Gregorian.

    Alternate macOS config location for Catalina. The problem is that
    File::HomeDir->my_dist_config() is in ~/Documents/, and I have been
    unable to access that from a macOS launchd job, even running as the
    owner of the direcory. At the moment I am also looking in
    File::HomeDir->my_dist_data(), which experimentation seems to show
    is accessible to a launchd job. But that may not be its final
    resting place. The my_dist_config() location will still be found --
    this is just a band-aid for those who use this code in scheduled
    jobs.

0.043		2020-01-17	T. R. Wyant
    Fix y2020 problem when using Date::Manip for input. The ISO8601
    parser appears to be unaffected.

0.042		2019-11-03	T. R. Wyant
    Fix redirects in POD URL links.

    Implement \U and friends inside double quotes, except for \Q. If run
    under Perl before version 5.15.8, \F is equivalent to \L.

    Add interactive method error(). This aborts the macro or include
    file in which it appears, displaying an error message.

    Add if() operators -z and -n, which are analogous to the test (1)
    operators of the same name.

    Macro definitions are no longer unescaped. Unescaping was preventing
    the \U ... functionality from working in a macro, and had no known
    benefits. I must have put it in there for some reason, but I no
    longer know why.

    Correct eg/pass_ics to alert before and at rise.

0.041		2019-10-04	T. R. Wyant
    Fix validation error caught by Astro::Coord::ECI 0.109_01.

    Validate horizon, latitude, and longitude.

    Add -verbose to macro( load => ... )

0.040		2019-07-20	T. R. Wyant
    Fix broken POD links and add test to ensure they stay fixed.

    Remove Astro::App::Satpass2::Format::Classic refs. This module was
    retired quite a while back.

0.039		2019-03-29	T. R. Wyant
    Fix test failures when local zone not determined. This was a single
    test in t/format_template.t that attempted to use
    DateTime::Calendar::Christian to format March 15, 44 BC. The problem
    is referred from DateTime::TimeZone::Local, which can not determine
    the local zone under Haiku, and dies. Thanks to Serguei Trouchelle
    for the tests that exposed this.

0.038		2019-03-13	T. R. Wyant
    The 'model' setting is no longer ignored. It is now actually applied
    to the TLE objects when loading them, and a change in value causes
    all loaded TLEs to be modified as well.

    Make ::TLE::Iridium optional.

0.037		2018-10-28	T. R. Wyant
    Fix test failure in t/locale.t. I hope. Some of the CPAN testers
    get errors like

      do "t/locale/fu_BAR.pm" failed, '.' is no longer in @INC; did you
      mean do "./t/locale/fu_BAR.pm"? at ...
      gglib/Astro/App/Satpass2/Locale.pm line 210.

    but I can't duplicate this, even under Perls that manifestly do not
    have '.' or any facimile thereof in @INC.

0.036		2018-10-17	T. R. Wyant
    Support alternate Sun and Moon classes, and other bodies that
    contain built-in models (e.g. Astro::Coord::ECI::VSOP87D::*).

    Add sky() settings to the output of save().

    Proper display of formatter template names.

0.035		2018-01-26	T. R. Wyant
    TODO test because of changed equinox algorithm.

    Remove mailto: bug reporting metadata.  Not that I refuse these, it
    is just that it appears to cause RT to think I will not accept bug
    reports from them.

    Support for decayed Iridium satellites.

0.034		2017-04-01	T. R. Wyant
  Update FormatTime/DateTime.pm calendar_name code to take advantage of
    the calendar_name() method if present.

  Add 'provides' data to ExtUtils::MakeMaker output

0.033		2017-01-12	T. R. Wyant
  Protect tests from local zone problems

  Use 'use parent' instead of 'use base'.

0.032		2016-12-11	T. R. Wyant
  Use time_local() and time_gm() from Astro::Coord::ECI::Utils. This
    requires Astro::Coord::ECI::Utils 0.077.

    The problem here is that earlier in the year I found that Time::Local
    worked better for dates well away from the current year if I passed it
    the Gregorian year rather than computing the Perl year. But I support
    Time::y2038 for the benefit of older Perls, and it expects a Perl year.
    The fix was to wrap the Time::y2038 calls in code that duplicates
    Time::Local's year handling.

    Thanks to Slaven Rezic for finding this, and for having smokers
    configured with modules like Time::y2038 (which is optional for this
    package) so that he _could_ find it. Kudos!

  Better diagnostics for Date::Manip::DM5 test fails

  Fix deep recursion in ::Macro->wail() & friends

  Support formatting times with any class conforming to the DateTime
    interface, via formatter attribute 'back_end'. If
    DateTime::Calendar::Christian is used her, require version 0.06.

  Support using DateTime (if available) to convert a parsed ISO-8601
    time to epoch. An arbitrary class confirming to the DateTime
    interface can be used instead, if specified.

  Support era indicators (AD/BC, CE/BCE) suffixed to year in the
    ISO-8601 time parser. Yes, this is an extension to the standard.

  Support parsing time with code (a code macro in the case of
    bin/satpass2).

  Add interactive method if(), which conditionally executes another
    interactive command. The conditional command can be 'begin', i.e. a
    block 'if'. Conditions include checks for operating systems, whether
    given objects are loaded, and Boolean tests on the values of
    environment variables and attributes.

  Implement block time() (with begin ... end). Like if(), this works
    only interactively.

  Except Template::Exception messages from the localization code.

  Try to warn if loading wrong-case module, if we think we might be on a
    case-tolerant filesystem.

  Add File::Spec to prerequisites

  Redo Astro::App::Satpass2::ParseTime->new() to perform as intended,
    and document its arguments.

  The formatter object now displays its time_formatter attribute as a
    short name where possible.

  Add time_formatter value to 'show' output.

  Allow specifying a time as a scalar reference, The dereferenced value
    is interpreted as epoch.

  Special-case DateTime strftime() format %{calendar_name} to display
    the name of the calendar in use.

  Heuristics to make ODF geocoding more useful. I hope.

  Retract support for Geo::Coder::Geocoder::US. The underlying web site
    has been AWOL since late 2015.

0.031		2016-02-24	T. R. Wyant
  Consolidate development changes into next production release.

  Correct and clean up recommended-module code.

  Document anticipated retraction of Geo::Coder::Geocoder::US geocoding
    support. Skip t/geocode_geocoder_us.t unless author testing

  Add Makefile targets authortest, testcover

Changes  view on Meta::CPAN

  Try to get better diagnostics for the occasional load failures
    reported by CPAN testers.

0.016		2014-01-20	T. R. Wyant
  Make the rounding of time for display configurable. The default is to
    round to the nearest second.

  Support body-specific pass events. This is really in support of a
    project to predict sounding rocket visibility based on published KMZ
    files for the launch.

  Add options to the quarters() method to select which are displayed.

  Add eg/quarters_vcalendar.

  In Astro::App::Satpass2::FormatValue:

  * Add formatter method list() to handle TLE output. Handle individual
      lines of the list with sub-templates.

  * Build time formats when used. This to allow subclasses to add time
      formatters.

  "Code macro" support tweaks. This is all still experimental:

  * Add method Astro::App::Satpass2->__add_to_observing_list().

  * Call code macro after_load() (if it exists) after loading the
      macros.

  * If a code macro is loaded using the -lib option, record the absolute
      path to the directory unless -relative also asserted.

  Fix Astro::App::Satpass2::Format::Dump. No telling how long it was
    broken.

0.015		2013-11-17	T. R. Wyant
  Require Getopt::Long 2.39 (up from 2.33) because I am using
    getoptionsfromarray().

  Use O-O version of Getopt::Long everywhere, to prevent leakage of
    configuration in (or out).

  Clean up options hash passed to external methods.

0.014		2013-10-14	T. R. Wyant
  Use a mock File::HomeDir object for testing.

  Have the expansion of ~~ throw an exception if the configuration
    directory does not exist. Skip test of ~~ expansion in this case.

  Improve tests that compare path to expected, to handle better the case
    where the path contains a symbolic link.

  Fixed failure in Astro::App::Satpass2::Format->decode(
    'desired_equinox_dynamical' ) when the value was not 0.

  In file name expansion, made ~~/... expand to configuration directory.

  Added the ability to implement a macro as Perl code. These are handled
    by Astro::App::Satpass2::Macro::Code. The corresponding satpass2
    syntax is 'macro load Module_name'. Document this in TUTORIAL.

  Updated required version of Astro::SpaceTrack to one that supports the
    REST interface.

  Require Astro::Coord::ECI 0.57 because of the international launch
    designator problems introduced in 0.051_01.

  Make load_package() optionally callable as a method so it can use the
    same error reporting mechanism as everyone else if it is available.

  Add options to the load_package() calling sequence: lib (which
    directory to add to @INC), complain (how to report validation
    failures), and fatal (whether and how to report failures to load the
    module). A true value of 'fatal' causes the failure not to be cached
    so that another load of the module will produce the same failure.

  Made $satpass2->time_parser( base => ... ) both parse an input time
    and return a formatted time.

  Made time parsing conform to the documentation in that if the time was
    defaulted, the default sets the base time for the parser.

  Implement Astro::App::Satpass2 method sky( lookup => ... ) in terms of
    the Astro::SIMBAD::Client script method rather than the query()
    method, since the former does not use SOAP::Lite.

0.013		2013-02-14	T. R. Wyant
  On failures in t/parse_time_date_manip_*.t, dump the zone of the
    parser object, if any.

  Require File::HomeDir 0.93, since we are using my_dist_config().

  Further tweak dumping of Date::Manip info in tests, in the hope of
    getting enough information to actually diagnose test failures.

  Eliminate warnings in t/parse_time_date_manip_5.t if Date::Manip v5 is
    being used (rather than Date::Manip 6's DM5 back end).

  Bypass Date::Manip::DM5 testing under MSWin32, since it fails and I
    can't figure out why.

  Put traps in t/parse_time_date_manip_5.t to try to figure out where
    the DM5 errors are coming from.

  Fix warning thrown when there is no configuration directory.

  Correct problem with configuring (and dumping the configuration of)
    the time parser. The formatter object was being accessed instead.
    This has apparantly been present since pretty much the beginning.

  Make the time_parser class of record
    Astro::App::Satpass2::ParseTime::Date::Manip rather than ::v5 or
    ::v6, since we have no control over the environment variables in
    effect when we are launched, and thus, if Date::Manip 6 is
    installed, which back end is in use.

  Redo Astro::App::Satpass2::ParseTime::Date::Manip logic so that if
    Date::Manip 6 is initialized in DM5 mode calls to it get routed
    through Astro::App::Satpass2::ParseTime::Date::Manip::v5. This was



( run in 1.318 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )