Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure tracker files never remain after tests or during prod builds #506

Merged
merged 2 commits into from Nov 17, 2023

Conversation

TheDuckCow
Copy link
Member

Two levels of trying to make sure we never ship with tracker code again.

  1. Remove the tracker and parent id right after all tests complete
  2. Force removal during the release script, after tests but before the zip build is performed.

Removed the test that checks for these file. There was a wrong path which was why it wasn't failing correctly before. Plus, the test itself is basically redundant, since other modules of the test runner are what cause the creation of the tracker files being created in the git folder and thus the file can get generated before and after this test runs. The test runner now cleans itself up instead.

-------------------------------------------------------------------------------
bversion   	ran_tests	ran	skips	failed	errors
-------------------------------------------------------------------------------
(3.6.2)   	all_tests	63	2	0	No errors
tests took 16s to run, ending with code 0

@TheDuckCow TheDuckCow linked an issue Nov 16, 2023 that may be closed by this pull request
@TheDuckCow TheDuckCow merged commit bd3e1bb into master Nov 17, 2023
@TheDuckCow TheDuckCow deleted the never-build-with-tracker branch November 17, 2023 15:59
StandingPadAnimations added a commit that referenced this pull request Apr 28, 2024
* Update Asset-Submission.yaml to add asset-submission (#449)

Moving forward, using this label to apply to asset submissions to make it easier to identify, and to potentially identify community members to review.

* Change bpy build yaml config

* Migrating more critical tests ahead of release.

This includes QA checking scripts, which have already uncovered one
issue with one of the updated rigs.

* Migrated tests deleted from prior commit.

* Removed last bv28 calls and no longer necessary qa test limit

* Fixed geo node effect spawning for blender 4.0+ and migrated tests.

* Resolved most lint errors in the mcmodel file.

* Removed already irrelevant old unit tests.

* Updated mapping data

* Enable unittest -t flag to match entire test classes or files.

* Fix running util_test class on its own.

* Fix bug where the "discover" unittest function would delete data json.

This was a weird one. Essentially, running the unittests would always
result in the `mcprep_data_update.json` file being renamed to
`mcprep_data.json` (and since that file isn't tracked in git, would look
like the file was deleted wrt to local changes). This was happening, out
of all things, due to this line in the unittest runner:

unittest.TestLoader().discover(MODULE_DIR, "*_test.py")

This is because the discover command clearly has to attempt loading of
the modules it's scanning over, and at some point we import the env
module and thus the __init__ code on module load would trigger,
resulting in the file rename. By moving the rename into the register
function, we ensure it only happens in the context of an addon, which
is all we really need for it.

* Migrated all remaining tests, with all tests passing.

Unfortunately, we do still have the issue that the test runner renames
the mcprep_data_update.json file, and modifies checked-in mtl files,
but we can address this in the future.

* Removed the old test script and shell files.

The new test runner in python is straight forward enough to use that I
feel there is no longer a need for any system-specific shell files.

* Upversion MCprep to v3.5

* Ensure exit code of test runner is non-zero if any failure

* Create the initial release-drafting shell script

* Incrementing version for dev branch

* Added disclaimer in README

* Adopting py 3.7+ syntax and removing most lint warnings and errors

Some can't be avoided, such as those around bpy property definitions.

* Proactively identify bad analytics ID and replace with new one

Addresses an issue introduced in MCprep v3.5.0

* Raise more specific error with runtime error wrapper in background.

* Establish baseline tracker.py unittest

* Ensure bad parent id is overwritten by good local id + exhaustive tests

* Renaming SKIP_IDS to be INVALID_IDS.

* Updated BlenderChanges.md for Blender 4.0

* fix overlay geometry

* Updated for safer and more common bash script styling

* Add comment, slight face offset for overlay geometry

* Offset the overlay texture only

* Update load material function to support principled BSDF v2 in blender 4.0

* Add bpy-build to gitignore

* Revert "Add bpy-build to gitignore"

This reverts commit 03ac1d2.

* Revert "Change bpy build yaml config"

This reverts commit 8f2f793.

* Reducing overlay offset and merge by distance margin

* Upversion for next release

* Improved releaser script

Ran into a couple issues during the last release

* Upversion post 3.5.1 release

* Ensure tracker files never remain after tests or during prod builds (#506)

Two levels of trying to make sure we never ship with tracker code again.
Also removed now-redundant test for checking if tracker id present in git dir

* Marked optimizer as deprecated

* Added note on deprecation in optimize_scene.py

* Remove deprecated conf.py references

This commit removes the deprecated conf.py references that were meant to
be removed in MCprep 3.5.1, but weren't due to Blender 4.0's release

* Removed make_annotations and renamed compat funcs

* Fixed "Find Missing" due to animated image location and added test. (#520)

This operator was already high in terms of test coverage, but the one
branch not covered (and, the todo listed) was for animated textures. of
course, that was what went wrong. Now it tests this branch too.

* Fix direct socket name reference error in optimizer. (#519)

* Prevent collection-effect obj particle src from being cleaned up. (#518)

Before this change, if a collection effect included a particle system
where the source of the particles was an object (as opposed to an entire
collection), then on save and reload of that file, the particle object
would have been cleaned up, as it was not linked to the scene and for
some reason, since forever, blender does not count usage of an object
as a particle emitter as an object use reference when it comes to its
own internal cleanup.

Works now, tested by saving and reloading a file after spawning in a
version of the firework tutorial where I didn't use a collection as the
firework source.

* Made notice regarding owning a legal copy of Minecraft more visible (#522)

More explicit notice about having valid MC license

---------

Co-authored-by: TheDuckCow & StandingPad Animations

* Change Skin Swap's behavior for more nuanced swapping (#498)

* Changed behavior of skin swap to be more nuanced

Skin swap originally would change all image textures on all materials of
the selected object, regardless of whether the user wanted to or not.
This is not ideal for rigs that need multiple seperate textures.

To expand the use case of skin swap, skin swap will now use a more
nuanced method of swapping skins based on node name, which is an already
established precedent from the MCprep Cycles Optimizer

* Fixed detection of node name in set_cycles_texture

* Fixed error with node name checks

* Changed name check to ignore duplicates

* Rename and set swap_all_imgs default for texture changing function

Adding positional args to fix ordered references and set, while making
custom nuanced swapping still possible.

---------

Co-authored-by: Patrick W. Crawford <theduckcow@live.com>

* Upversion for MCprep v3.5.2

* Update Bug-Report.yml (#525)

* Updated mcprep_data json mapping for latest MC 1.20.4

* Readme updates for new settings and deprecation note

* Updating grass canonical mapping and improved desaturation debug prints

With this, we now have correct prep material saturation again for this
grass object, and all tests passing again.

* Added clarification to README

* Fixed incorrect keyword argument

* Added swap texture pack test

* Upversion and disable porcelain check

* Updated test run script and refreshed data file for MC 1.20.5

* chore: Merging Milestone 3.6.0 to Dev

* Upgrade to BpyBuild 0.3.0

* Updated reference command in CONTRIBUTING.md

* Added action-scripts folder with BpyBuild actions

This is so we can better organize our scripts

* Added Ignore Filters action as default

This was something that would have been useful in #505, and now we have
it :D

* Updated ignore_filters.py to print deleted files

This is a small change that'll make it easier to understand what's going
on at runtime with regards to the ignore filter

* Updated build command in run_tests.py

* Added print statement to dev.py

* Updated bpy-build.yaml

* Added .blend filter for dev builds

* Switched to BpyBuild ignore filters

* Revert "Switched to BpyBuild ignore filters"

This reverts commit 7469142.

* Updated config option in BpyBuild

* Added warning to ignore_filters.py

* Added error object for better user experience

* Switched to BaseException for MCprepError

* Removed redundant variable

* Refactored colorspace setup to be more flexible

In the past, we'd set this to a hard coded value. However, that proved
to be annoying to users using non-standard OCIO configs like ACES or
early versions of AgX. MCprep already fixes MTL files for ACES
compatibility, so we're expanding this to prep materials.

In `mcprep_data.json`, there will now be a section called
"non_color_options", which is a list of different options for Non-Color
Data/Generic Data. If a user is using a non-standard setup, they can
simply add the correct option in the JSON file and prep materials will
function properly.

The matching goes in order from first to last, and MCprep will use the
first value matched at runtime.

* First commit for i18n

* Added .venv to gitignore

* Fixed missing ) and added additional string

* Moved import statement for inspect

* Reduced nesting in function

* refactor(comment): Refactored comment in util.py

* Added some metadata to English PO file

* build(config): Removed ignore filter

* Update .gitignore

Co-authored-by: Patrick W. Crawford <theduckcow@live.com>

* chore: removed MCprep_resources from gitignore

* feat: Added zn_CN to Languages

* refactor(language): moved en to en_US

* feat: make MCprep follow the user's Blender locale

* refactor(languages): moved to zn_HANS

* fix: made translations change on the fly

* fix: Added fallback for non-existent translations

* fix: Fixed fallback

* Added some details to MCprep POT

* docs: Added documentation on translating MCprep

* docs(i18n): Removed redundant line

* Updated POT file

* chore(i18n): Added new strings to zn_HANS

* Recompiled zh_HANS

* fix(annotations): Added missing annotation to _

* docs(i18n): Added developer documentation

* Added polib to dependencies

* build: Added dictionary generator for i18n

This allows us to use bpy.app.translations without requiring translators
to have Python experience. While Blender allegedly has this ability, I
haven't been able to find it, so as far as I'm aware, it doesn't exist.

* Added use of bpy.app.translations

* fix(i18n): Fixed detection of translations.py

* Added autobuilding of MO files to default action

* docs(i18n): Updated i18n docs for maintainers

* build(i18n): Added comments to mo compile script

* docs(i18n): Added BpyBuild to i18n docs

* chore(git): Added MO files to .gitignore

* refactor(removal): Remove MCprep optimizer

The MCprep optimizer was deprecated in the MCprep 3.5 series, and slated
for removal in MCprep 3.6. This is due to the following reasons:
- Outdated design (made prior to Blender 3.0 when Cycles X was still in
  development, and has yet to adapt to modern Cycles)
- Extreme bugs that are hard to fix, such as 80+ light bounces
- Unnecessary as there's no special optimizations for Minecraft scenes,
  and on the contrary may actually be a bad thing as it uses settings
  like clamping indirect with horrible options

* Added polib directly in the source tree

* build: Added separate translate action

* build: added if-name-main to all actions

* docs(i18n): Updated developer docs

* Readded flake8 to requirements.txt

* docs(i18n): Removed negative tone from docs

* Revert "Added polib directly in the source tree"

This reverts commit 8288d5d.

* Updated POT file

* Updated contributing guide readme

* docs: Updated BlenderChanges.md

* build: Add script to generate POT file + Migration to BpyBuild 0.4 (#548)

* build: Add script to generate POT file

* build: Moved build_pot to a separate action

* Fixed metadata and line reference generation

* Updated POT file

* build: Future proofed script for BpyBuild actions

* Revert "build: Future proofed script for BpyBuild actions"

This reverts commit 2d1533a.

* deps: Updated BpyBuild to 0.4

* build: Updated build_pot to use pre_build

* i18n: Updated POT file

* build: Moved build-pot to translate action

* build: Fixed error causing wrong POT comments

* Added translate to release script

* Further update the release script to track changes and safer ver check

* build: Add metadata to POT file, added 4.1 and 4.2

---------

Co-authored-by: Patrick W. Crawford <theduckcow@live.com>

---------

Co-authored-by: Patrick W. Crawford <theduckcow@live.com>

---------

Co-authored-by: Patrick W. Crawford <theduckcow@live.com>
Co-authored-by: Cathal Feeney <c.feeney333@gmail.com>
Co-authored-by: 0znightlord0@gmail.com <0znightlord0@gmail.com>
Co-authored-by: Trung Phạm <61040487+zNightlord@users.noreply.github.com>
Co-authored-by: Patrick W. Crawford <moo-ack@theduckcow.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bpy-addon-build keeps including tracker json
1 participant