Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: Wolfyxon/lover

2.2.1

05 Jul 10:32

Choose a tag to compare

Changes

This is a bugfix release.

  • Added --no-prime flag for lover run to override config and not run the game with prime
  • Ignoring *.temp with Git in new projects
  • Built AppImage is automatically marked as executable on Linux
  • Fixed commands not being found in the OS PATH on Windows (thanks to @VamatoHD pull #5)

Full Changelog: v2.2.0...v2.2.1

2.2.0

05 Jun 17:01

Choose a tag to compare

New features

copyright for [package]

The optional copyright value will appear in the EXE details.

[package]
name = "Copper"
copyright = "Copyright Ea-Nasir 1750 BCE - 2025

Other

  • Did you mean... for dependency queries
  • Showing Git commit hash for debug binaries in lover version

Changes and fixes

display_name instead of description for the program's display name on Windows

[package]
name = "coolGame"
display_name = "Cool Game"
[package]
name = "coolGame"
version = "1.0"

On Windows, file description in EXEs is the displayed program's title in the task manager. The description word is a bit problematic.

The description lover.toml [package] value has been changed to [display_name] to not confuse the users.
Also now the default value contains the name and version.

Getting in game:

os.getenv("LOVER_PKG_DISPLAY_NAME")

Default value:

{package name} {package version}

description is still available to use in the config and accessible with os.getenv("LOVER_PKG_DESCRIPTION") but for now has no other use.

Other

  • rcedit now runs before embedding the game into the EXE to fix a bug where it wouldn't find the game's code
  • [Y/N] confirmation now accepts both y and Y (#4 by @thefenriswolf)
  • lover build without any arguments and not configured defaults will now pick the target matching your platform
  • Minor performance improvements by using conditional compilation
  • Progress bars now use units. Example Downloading thing [===== ] 0.1/1.3 MB
  • Removed long description in lover create
  • Some message changes
  • Each target's build process is separated by an extra line for better readability
  • Fixed some progress bar issues
  • Fixed commands not being found on Windows
  • Fixed lover run showing no output on windows, by using lovec instead of love by default
  • Fixed file version not changing in the EXE details

Full Changelog: v2.1.1...v2.2.0

2.1.1

06 Apr 10:47

Choose a tag to compare

2.1.0

28 Mar 16:38

Choose a tag to compare

New features

Finding lover.toml in parent directories

You can now have your terminal open anywhere inside your project, and you'll still be able to use lover.

Detecting old consts

During parsing, you'll get a warning if an old const like LOVER_NAME instead of LOVER_PKG_NAME is used.

Changes

Better project template

An icon is now included in the project template.

main.lua

Old

local text = love.graphics.newText(love.graphics.getFont(), "Hello World!")

function love.draw()
    love.graphics.draw(text)
end

New

local text = "Hello World!"
local textObj = love.graphics.newText(love.graphics.getFont(), text)

local version = os.getenv("LOVER_PKG_VERSION")
local gameName = os.getenv("LOVER_PKG_NAME")

print(gameName, "v.", version)

function love.draw()
    love.graphics.draw(textObj)
end

Other

  • Better logs
  • Some code optimizations
  • Fixed color codes not working on Windows
  • Better and unified project directory validation for new and create

Full Changelog: v2.0...v2.1

2.0

22 Mar 14:58

Choose a tag to compare

2.0

Changes

Better env names

Important

Old names will NOT work. Make sure to update your os.getenv() calls.
If you're not currently able to adapt, please use the 1.3.1 version as it contains fixes for some security vulnerabilities in the Rust crates used by Lover.

Constants imported from the [package] section in lover.toml now have the PKG keyword:

  • LOVER_NAME -> LOVER_PKG_NAME
  • LOVER_VERSION -> LOVER_PKG_VERSION
  • LOVER_AUTHOR -> LOVER_PKG_AUTHOR
  • LOVER_DESCRIPTION -> LOVER_PKG_DESCRIPTION

Why?

Not all constants represent package data. For example LOVER_TIMESTAMP and LOVER_CONTEXT.
This makes them more distinguishable.

Other

  • Reduced binary size
  • Beter module generation
  • Better messages and logging
  • Errors are now logged to stderr instead of stdout

New features

rcedit is now a dependency

You don't have to manually install rcedit anymore.

You can now just do

lover install rcedit

If you have rcedit set in your config, it will be prioritized over the dependency version.

create command

Runs an interactive setup for creating your project.

Example usage:
lover create

> Welcome to the Lover project creator: 
You'll be asked a few questions for your project settings and then everything will be set up for you.
If a question has '(default: ...)' or '(optional)', just press enter enter if you don't want to change it.
Use ^C to abort (press Ctr+C in your terminal)
Note: All settings can be changed at any time you want in the lover.toml file.

Name of your project: CoolGame           
Where should your project files be? (default: CoolGame): 
OK: Project directory successfully created
Your name (optional): CoolPerson
Description (optional): My cool game

See https://github.com/wolfyxon/lover/wiki/project-configuration To see how you can configure your project
OK: Project successfully created

all build target

Running lover build all will build your game for every supported platform.

env command

You can now see a list of the available env variables added by Lover.

Example outputs:

lover env

LOVER_PKG_NAME: Test
LOVER_TIMESTAMP: 1742641595
LOVER_CONTEXT: run
hi: hello
LOVER_PKG_VERSION: 1.0.0
LOVER_PKG_AUTHOR: MEEEE
LOVER_PKG_DESCRIPTION: Test app

Note: Use  `os.getenv("name")` in your game to access each value.

lover env --no-hint

LOVER_PKG_DESCRIPTION: Test app
LOVER_PKG_VERSION: 1.0.0
LOVER_CONTEXT: run
LOVER_PKG_AUTHOR: MEEEE
hi: hello
LOVER_TIMESTAMP: 1742641657
LOVER_PKG_NAME: Test

Ability to ignore LOVER_* consts in os.getenv()

New function definition: os.getenv(name, noLover)

Note

This feature only works properly in compiled games.
When using lover run, os.getenv() may always prioritize the Lover's consts even if you specify true in the function call.

If you need to use the normal Lua's os.getenv() without the extra LOVER_* consts, specify true as the 2nd argument

os.getenv("LOVER_TIMESTAMP", true)

You can also use os._getenv(), but you'll need extra code to not make your game crash when using lover run as this function is only available in compiled games.


Full Changelog: v1.3...v2.0

Warning

This release has breaking changes. Make sure to update your os.getenv() statements to the new constant names!

1.3.1 - Security fix

21 Mar 18:19

Choose a tag to compare

This is a security patch to the previous 1.3 version.

Changes

Full Changelog: v1.3...v1.3.1

1.3 - Windows AppImage fix

10 Nov 20:03

Choose a tag to compare

Full Changelog: v1.2...v1.3

New features

Native AppImage support

The linux target can finally be built natively on Windows.

appimagetool is no longer needed. AppImages are now handled entirely by Lover.

More const features

More constants

  • LOVER_CONTEXT: Equal to "run" if the game is ran with lover run, or "build" if the game is packaged.
  • LOVER_TIMESTAMP: UNIX timestamp of the time when the game was built (or ran with lover run)

Custom

[env] field for lover.toml with:

  • global: Always applied
  • build: Applied when the game is built
  • run: Applied when the game is ran with lover run
[env.global]
pants = "my pants" 

[env.run]
i = "am about to poop" 

[env.build]
i = "pooped"
print("I", os.getenv("i"), os.getenv("pants"))

(yes this is the best example I could think of)

Default run arguments

Added a new [run] field with default_args for lover.toml

[run]
default_args = ["hi", "hello"]

Those arguments are applied if nothing is specified after lover run.
Otherwise, the arguments you specified in the command will be used.

Other

  • lover dep now shows the dependency directory.

Changes

Cleaner build directory

Temporary files and directories that are not needed by the user (but needed by Lover) such as conf.lua, squashfs-root in build/, have been moved to build/temp to be less confusing and messy.

1.2 - Constants

03 Nov 13:43

Choose a tag to compare

Changes and additions

Full Changelog: v1.1...v1.2

New features

Constants

Added env variable constants such as LOVER_VERSION that can be used in either testing or production.

 print("Running on version:", os.getenv("LOVER_VERSION"))

Learn more

Initial LovePotion

LovePotion dependencies have been enabled, but they have no real use yet.

1.1 - EXE info

22 Oct 15:59

Choose a tag to compare

Full Changelog: https://github.com/Wolfyxon/lover/commits/v1.1

Changes and additions

New features

EXE info

Info from lover.toml is applied to the built EXE files for Windows, such as the icon, version and company name.

See RCEdit in the software wiki page to learn how to install it.

Default build targets

You can specify the default targets in lover.toml when lover build is used.

[build]
default = ["linux", "win64"]

Zipping windows builds if enabled

win32 and win64 build directories can automatically be zipped if build.zip is enabled in config.toml

[build]
zip = true

Changes

Renamed dependencies

Added a love- prefix to dependencies so they're not confused with targets.

Old: lover install win64
New: lover install love-win64

1.0 - first stable release

19 Oct 21:48

Choose a tag to compare

First early release of Lover.

Please note that EXE info (such as the icon, version, author etc.) has not been implemented yet.

Full Changelog: https://github.com/Wolfyxon/lover/commits/v1.0