# FixYourWorkaround.jl -- Remind yourself to fix your workarounds

**URL:** <https://discourse.julialang.org/t/fixyourworkaround-jl-remind-yourself-to-fix-your-workarounds/44694>\
**Category:** Package Announcements\
**Created:** [August 10, 2020, 3:32pm UTC](https://discourse.julialang.org/t/fixyourworkaround-jl-remind-yourself-to-fix-your-workarounds/44694 "2020-08-10T15:32:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mattBrzezinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mattbrzezinski/32/17042_2.png) [@mattBrzezinski](https://discourse.julialang.org/u/mattBrzezinski)\
**Post date:** [August 10, 2020, 3:32pm UTC](https://discourse.julialang.org/t/fixyourworkaround-jl-remind-yourself-to-fix-your-workarounds/44694/1 "2020-08-10T15:32:10Z")

</div>

Introducing `FixYourWorkaround.jl`, a small testing utility package to remind you to fix your package dependency workarounds.

Motivation behind this package comes from having to support multiple versions of a dependency and creating some workarounds for it. A real world example of this is with `DataFrames@0.20` and avoiding broadcasting.

Replacing the following:

```julia
for (df, foo) in zip(data_frames, foo)
    df[!, :foo] .= foo
end

```

With:

```julia
for (df, foo) in zip(data_frames, foo)
    df[!, :foo] = fill(foo, nrow(df))
end

```

In a later date when `DataFrames@0.20` is dropped we want to revert this change, however how do we remember to make this change? Sure we can leave a `TODO` and create a Git Issue for it, but that still banks on people needing to look for `TODOs` in the repository, or remembering the issue exists.

This is where `FixYourWorkaround.jl` comes in, all you need to do is create a test case which will check if you no longer support a version of a package dependency. In the example above you would just need to add in:

```julia
using FixYourWorkaround

# Link to the Git issue
@test package_compatible("DataFrames", "0.20")

```

When support for `DataFrames@0.20` is removed, the test will fail. Thus, reminding you to fix your workaround!

> **[GitHub - mattBrzezinski/FixYourWorkaround.jl:...](https://github.com/mattBrzezinski/FixYourWorkaround.jl)**
>
> https://discourse.julialang.org/t/fixyourworkaround-jl-remind-yourself-to-fix-your-workarounds/44694 - GitHub - mattBrzezinski/FixYourWorkaround.jl: https://discourse.julialang.org/t/fixyourworkaro...
