ronisbr / PrettyTables.jl

Print data in formatted tables.
MIT License
391 stars 38 forks source link

Versioning for breaking releases #232

Open itsdfish opened 7 months ago

itsdfish commented 7 months ago

Hello,

Thank you for this package. I found it to be quite useful for several of my projects. I am opening an issue because there were breaking changes sometime between 2.0 and 2.3.1, specifically in the keyword names used in pretty_table. Here is a description of the problem on Discourse. Based on the docs for Pkg.jl, my understanding is that a breaking change should have changed the major version to 3.0. The documentation notes:

After 1.0.0 only make breaking changes when incrementing the major version.

ronisbr commented 7 months ago

Hi @itsdfish !

Ouch, I might have removed the deprecated keywords in the wrong branch. I will revert this problem and tag a new version this weekend. Thanks for the report.

itsdfish commented 7 months ago

No problem! I completely understand how that can happen.

Thank you for fixing the versions.

itsdfish commented 7 months ago

Also, it appears that I may have misunderstood the nature of the problem here. If I understand correctly, the deprecation warnings are hidden by default, and fallback on the deprecated method. So it looks like I was unknowingly using the old method, and only noticed the problem once the deprecation warning was removed. I updated my code accordingly. Sorry for the confusion!

ronisbr commented 7 months ago

Ok! So let's just issue open and if anyone else complain I will revert the commit. Thanks!

gbruer15 commented 5 months ago

I had this issue. For anyone else who runs across it, a simple fix is to downgrade to v2.2.7

Here's the relevant error message, which make help Google searches:

ERROR: LoadError: MethodError: no method matching _print_table_with_text_back_end(::PrettyTables.PrintInfo; row_names::Vector{Symbol},
 row_name_alignment::Symbol, tf::PrettyTables.TextFormat, row_name_column_title::String)

Closest candidates are:
  _print_table_with_text_back_end(::PrettyTables.PrintInfo; alignment_anchor_fallback, alignment_anchor_fallback_override, alignment_anchor_regex, autowrap, body_hlines, body_hlines_format, continuation_row_alignment, crop, crop_subheader, columns_width, display_size, equal_columns_width, ellipsis_line_skip, highlighters, hlines, linebreaks, maximum_columns_width, minimum_columns_width, newline_at_end, overwrite, reserved_display_lines, show_omitted_cell_summary, sortkeys, tf, title_autowrap, title_same_width_as_table, vcrop_mode, vlines, border_crayon, header_crayon, omitted_cell_summary_crayon, row_label_crayon, row_label_header_crayon, row_number_header_crayon, subheader_crayon, text_crayon, title_crayon, T, T) got unsupported keyword arguments "row_names", "row_name_alignment", "row_name_column_title"
   @ PrettyTables ~/.julia/packages/PrettyTables/E8rPJ/src/backends/text/text_backend.jl:11

Stacktrace:
  [1] kwerr(::NamedTuple{(:row_names, :row_name_alignment, :tf, :row_name_column_title), Tuple{Vector{Symbol}, Symbol, PrettyTables.TextFormat, String}}, ::Function, ::PrettyTables.PrintInfo)
    @ Base ./error.jl:165
  [2] _print_table(io::IO, data::Any; alignment::Symbol, backend::Val{:auto}, cell_alignment::Nothing, cell_first_line_only::Bool, compact_printing::Bool, formatters::PrettyTables.var"#38#41"{Vector{Int64}, Vector{Printf.Format{Base.CodeUnits{UInt8, String}, Tuple{Printf.Spec{Val{'f'}}}}}}, header::Tuple{Vector{String}, Vector{String}}, header_alignment::Symbol, header_cell_alignment::Nothing, limit_printing::Bool, max_num_of_columns::Int64, max_num_of_rows::Int64, renderer::Symbol, row_labels::Nothing, row_label_alignment::Symbol, row_label_column_title::String, row_number_alignment::Symbol, row_number_column_title::String, show_header::Bool, show_row_number::Bool, show_subheader::Bool, title::String, title_alignment::Symbol, kwargs::Base.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:row_names, :row_name_alignment, :tf, :row_name_column_title), Tuple{Vector{Symbol}, Symbol, PrettyTables.TextFormat, String}}})
    @ PrettyTables ~/.julia/packages/PrettyTables/E8rPJ/src/print.jl:1005
  [3] _print_table
    @ ~/.julia/packages/PrettyTables/E8rPJ/src/print.jl:880 [inlined]
  [4] pretty_table(io::IO, data::Any; header::Tuple{Vector{String}, Vector{String}}, kwargs::Base.Pairs{Symbol, Any, NTuple{7, Symbol}, NamedTuple{(:row_names, :title, :title_alignment, :row_name_alignment, :tf, :formatters, :row_name_column_title), Tuple{Vector{Symbol}, String, Symbol, Symbol, PrettyTables.TextFormat, PrettyTables.var"#38#41"{Vector{Int64}, Vector{Printf.Format{Base.CodeUnits{UInt8, String}, Tuple{Printf.Spec{Val{'f'}}}}}}, String}}})
    @ PrettyTables ~/.julia/packages/PrettyTables/E8rPJ/src/print.jl:771
  [5] pretty_table
    @ ~/.julia/packages/PrettyTables/E8rPJ/src/print.jl:740 [inlined]
  [6] pretty_table(data::Any; kwargs::Base.Pairs{Symbol, Any, NTuple{8, Symbol}, NamedTuple{(:header, :row_names, :title, :title_alignment, :row_name_alignment, :tf, :formatters, :row_name_column_title), Tuple{Tuple{Vector{String}, Vector{String}}, Vector{Symbol}, String, Symbol, Symbol, PrettyTables.TextFormat, PrettyTables.var"#38#41"{Vector{Int64}, Vector{Printf.Format{Base.CodeUnits{UInt8, String}, Tuple{Printf.Spec{Val{'f'}}}}}}, String}}})
    @ PrettyTables ~/.julia/packages/PrettyTables/E8rPJ/src/print.jl:719