Installation failed after dowloading archives

After downlading 1532 archives, pops a message that the installation failed.
"Cannot continue, was unable to download one or more archives"
It posts some messages about one mod (The Ultimate Dodge Mod) and other basic skyrim files (animations.bsa, misc.bsa and other .bsa files)
I've tried reinstalling the missing archives, but it takes me to a loop:

Downloading 19 missing archives
Fails on each one, prompts a "No alternative for {random hash}"
And Begins installing and fails immediatly with the above error

Adding the latest log files, generates the same output everytime
Wabbajack.current.log

im in the same boat

Me too .. exactly the same error

Have you guys also installed the anniversary update? Maybe it messes the basic skyrim files up?

I used the downgrade tool so its not the anniversary update.

And still having the same problems? Or is it fixed?

@TitansBane don't want to be an hassle, but would really appreciate your help here
Really wanna play your modpack, since it's the only one for SE with TDM, aside from the visuals and crazy amount of content
Still having the same issue, and yesterday I saw the modlist was in development, hoping for a fix but saddly that hasn't fixed my issue.
Still saying that the files are missing, and I've checked the downloads folder and all the files are inside the folder, yet WJ tries to download everytime and fails for "unable to download one or more archives"
Readding the latest log file
Wabbajack.current.log

@FunkyBonks and anyone else looking for this --
The issue is that you probably have the Skyrim SE Anniversary Edition update, go here and use this (get the FullPatcher.zip, extract, run patcher.exe) https://www.nexusmods.com/skyrimspecialedition/mods/57618 -- this downgrades your game to the non-Anniversary edition, which works with everything else.
After doing that and trying to reinstall the modpack via Wabbajack, you will still get an issue with The Ultimate Dodge Mod, so go get the file, linked here from another issue: https://github.com/TitansBane/Elysium/issues/188#issuecomment-938551236
Download that, paste it into your Elysium download directory (overwrite the file that is already there), and then in Wabbajack, do Install From Disk, and it should select Elysium, and it will then proceed to extracting everything and installing.

Hi,
Thanks for the help the Patch fixed it for the .bsa files. But it's still the same issue for the Skyrim_Default.ini (GameFileSourceDownloader+State|SkyrimSpecialEdition|<IP_ADDRESS>|skyrim_default.ini)
From what I have seen it could be the language so I set it on ENGLISH
Here is the Wabbajack log
Wabbajack.current.log
Here is the ini file
[General]
sLanguage=ENGLISH
sTestFile1=Dawnguard.esm
sTestFile2=HearthFires.esm
sTestFile3=Dragonborn.esm
uExterior Cell Buffer=36
[Display]
fShadowLODMaxStartFade=1000.0
fSpecularLODMaxStartFade=2000.0
fLightLODMaxStartFade=3500.0
fLightLODStartFade=3500.0
iShadowMapResolutionPrimary=2048
bAllowScreenshot=1
fTreesMidLODSwitchDist=9999999.0000
fFirstSliceDistance=2000.0000
fDynamicDOFFarBlur=0.4
fDDOFFocusCenterweightExt=2
fDOFMaxDepthParticipation=10000
[Audio]
fMusicDuckingSeconds=6.0
fMusicUnDuckingSeconds=8.0
fMenuModeFadeOutTime=3.0
fMenuModeFadeInTime=1.0
[Grass]
bAllowCreateGrass=1
bAllowLoadGrass=0
fGrassMaxStartFadeDistance=7000.0000
fGrassMinStartFadeDistance=0.0000
[Decals]
uMaxSkinDecalPerActor=60
[LightingShader]
fDecalLODFadeStart=0.45
fDecalLODFadeEnd=0.5
[Imagespace]
iRadialBlurLevel=2
[GeneralWarnings]
SGeneralMasterMismatchWarning=One or more plugins could not find the correct versions of the master files they depend on. Errors may occur during load or game play. Check the "Warnings.txt" file for more information.
[Archive]
sResourceArchiveList=Skyrim - Misc.bsa, Skyrim - Shaders.bsa, Skyrim - Interface.bsa, Skyrim - Animations.bsa, Skyrim - Meshes0.bsa, Skyrim - Meshes1.bsa, Skyrim - Sounds.bsa
sResourceArchiveList2=Skyrim - Voices_fr0.bsa, Skyrim - Textures0.bsa, Skyrim - Textures1.bsa, Skyrim - Textures2.bsa, Skyrim - Textures3.bsa, Skyrim - Textures4.bsa, Skyrim - Textures5.bsa, Skyrim - Textures6.bsa, Skyrim - Textures7.bsa, Skyrim - Textures8.bsa, Skyrim - Patch.bsa
bLoadArchiveInMemory=1
sArchiveToLoadInMemoryList=Skyrim - Animations.bsa
[Combat]
fMagnetismStrafeHeadingMult=0.0
fMagnetismLookingMult=0.0
[Actor]
bUseNavMeshForMovement=0
[Papyrus]
fPostLoadUpdateTimeMS=500.0
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0

Hi,
Thanks for the help the Patch fixed it for the .bsa files. But it's still the same issue for the Skyrim_Default.ini (GameFileSourceDownloader+State|SkyrimSpecialEdition|<IP_ADDRESS>|skyrim_default.ini) From what I have seen it could be the language so I set it on ENGLISH
Here is the Wabbajack log Wabbajack.current.log
Here is the ini file
[General] sLanguage=ENGLISH sTestFile1=Dawnguard.esm sTestFile2=HearthFires.esm sTestFile3=Dragonborn.esm
uExterior Cell Buffer=36
[Display] fShadowLODMaxStartFade=1000.0 fSpecularLODMaxStartFade=2000.0 fLightLODMaxStartFade=3500.0 fLightLODStartFade=3500.0 iShadowMapResolutionPrimary=2048 bAllowScreenshot=1 fTreesMidLODSwitchDist=9999999.0000 fFirstSliceDistance=2000.0000 fDynamicDOFFarBlur=0.4 fDDOFFocusCenterweightExt=2 fDOFMaxDepthParticipation=10000
[Audio] fMusicDuckingSeconds=6.0 fMusicUnDuckingSeconds=8.0 fMenuModeFadeOutTime=3.0 fMenuModeFadeInTime=1.0
[Grass] bAllowCreateGrass=1 bAllowLoadGrass=0 fGrassMaxStartFadeDistance=7000.0000 fGrassMinStartFadeDistance=0.0000
[Decals] uMaxSkinDecalPerActor=60
[LightingShader] fDecalLODFadeStart=0.45 fDecalLODFadeEnd=0.5
[Imagespace] iRadialBlurLevel=2
[GeneralWarnings] SGeneralMasterMismatchWarning=One or more plugins could not find the correct versions of the master files they depend on. Errors may occur during load or game play. Check the "Warnings.txt" file for more information.
[Archive] sResourceArchiveList=Skyrim - Misc.bsa, Skyrim - Shaders.bsa, Skyrim - Interface.bsa, Skyrim - Animations.bsa, Skyrim - Meshes0.bsa, Skyrim - Meshes1.bsa, Skyrim - Sounds.bsa sResourceArchiveList2=Skyrim - Voices_fr0.bsa, Skyrim - Textures0.bsa, Skyrim - Textures1.bsa, Skyrim - Textures2.bsa, Skyrim - Textures3.bsa, Skyrim - Textures4.bsa, Skyrim - Textures5.bsa, Skyrim - Textures6.bsa, Skyrim - Textures7.bsa, Skyrim - Textures8.bsa, Skyrim - Patch.bsa bLoadArchiveInMemory=1 sArchiveToLoadInMemoryList=Skyrim - Animations.bsa
[Combat] fMagnetismStrafeHeadingMult=0.0 fMagnetismLookingMult=0.0
[Actor] bUseNavMeshForMovement=0
[Papyrus] fPostLoadUpdateTimeMS=500.0 bEnableLogging=0 bEnableTrace=0 bLoadDebugInformation=0
Yeah im stuck at the same step. was pretty hyped to play thit list but can´t make it work.

Hi,
Thanks for the help the Patch fixed it for the .bsa files. But it's still the same issue for the Skyrim_Default.ini (GameFileSourceDownloader+State|SkyrimSpecialEdition|<IP_ADDRESS>|skyrim_default.ini) From what I have seen it could be the language so I set it on ENGLISH
Here is the Wabbajack log Wabbajack.current.log
Here is the ini file
[General] sLanguage=ENGLISH sTestFile1=Dawnguard.esm sTestFile2=HearthFires.esm sTestFile3=Dragonborn.esm
uExterior Cell Buffer=36
[Display] fShadowLODMaxStartFade=1000.0 fSpecularLODMaxStartFade=2000.0 fLightLODMaxStartFade=3500.0 fLightLODStartFade=3500.0 iShadowMapResolutionPrimary=2048 bAllowScreenshot=1 fTreesMidLODSwitchDist=9999999.0000 fFirstSliceDistance=2000.0000 fDynamicDOFFarBlur=0.4 fDDOFFocusCenterweightExt=2 fDOFMaxDepthParticipation=10000
[Audio] fMusicDuckingSeconds=6.0 fMusicUnDuckingSeconds=8.0 fMenuModeFadeOutTime=3.0 fMenuModeFadeInTime=1.0
[Grass] bAllowCreateGrass=1 bAllowLoadGrass=0 fGrassMaxStartFadeDistance=7000.0000 fGrassMinStartFadeDistance=0.0000
[Decals] uMaxSkinDecalPerActor=60
[LightingShader] fDecalLODFadeStart=0.45 fDecalLODFadeEnd=0.5
[Imagespace] iRadialBlurLevel=2
[GeneralWarnings] SGeneralMasterMismatchWarning=One or more plugins could not find the correct versions of the master files they depend on. Errors may occur during load or game play. Check the "Warnings.txt" file for more information.
[Archive] sResourceArchiveList=Skyrim - Misc.bsa, Skyrim - Shaders.bsa, Skyrim - Interface.bsa, Skyrim - Animations.bsa, Skyrim - Meshes0.bsa, Skyrim - Meshes1.bsa, Skyrim - Sounds.bsa sResourceArchiveList2=Skyrim - Voices_fr0.bsa, Skyrim - Textures0.bsa, Skyrim - Textures1.bsa, Skyrim - Textures2.bsa, Skyrim - Textures3.bsa, Skyrim - Textures4.bsa, Skyrim - Textures5.bsa, Skyrim - Textures6.bsa, Skyrim - Textures7.bsa, Skyrim - Textures8.bsa, Skyrim - Patch.bsa bLoadArchiveInMemory=1 sArchiveToLoadInMemoryList=Skyrim - Animations.bsa
[Combat] fMagnetismStrafeHeadingMult=0.0 fMagnetismLookingMult=0.0
[Actor] bUseNavMeshForMovement=0
[Papyrus] fPostLoadUpdateTimeMS=500.0 bEnableLogging=0 bEnableTrace=0 bLoadDebugInformation=0

Yeah im stuck at the same step as you. I can´t get this modlist to work.

Hi.
I have the same issue with the Skyrim_default.ini. I have tried to change the language but nothing happens and the issue is almost there. :-(
@welch3694 Do you have an idea how to fix that as well? I have followed your hints you mentioned before and it helps to fix the most of the issue. But the default.ini one leaves!
16,71 - Found 1595 total files, 1554 matching filesize
16,94 - Unable to download Skyrim_Default.ini (GameFileSourceDownloader+State|SkyrimSpecialEdition|<IP_ADDRESS>|skyrim_default.ini)
16,94 - Cannot continue, was unable to download one or more archives
16,94 - File hash check (-42) f35dcfd8e6bdecfdb53f00dcce06cf66c7abbe392fe5a2273541977913782119
16,96 - Encountered error, can't continue - System.Exception: Cannot continue, was unable to download one or more archives
Thanks! ;-)

for default.ini set game in STEAM TO English

for default.ini set game in STEAM TO English

Thanks. That's it. Now it works


error in IE

my app won't render in IE, upon checking in Console, my build throws an error

@jedmonsanto since the source codes were written in JavaScript ES6+, you need babel to make it work on older browsers, or just bootstrap your project with tools like create-react-app or similar bootstrap tools.


Is UE in DTA necessary ?

When i use pg.perform_network_assignment_DTALite(mode=2, column_gen_num, column_update_num)，the mode is UE + DTA, the UE process is necessary before DTA.
If I have my own agent.csv, can I just call the DNL in PATH4GMNS?
Thank you!

UE is the prerequisite to conduct DTA for both Path4GMNS and DTALite.
pg.perform_network_assignment_DTALite(mode=2, column_gen_num, column_update_num) is actually calling DTALite embedded in Path4GMNS. DTALite only supports an integrated run of UE + DTA. In other words, you cannot bypass the UE process and directly run DTA using your own agent.csv.
However, this specific running mode is supported by the simulation module in Path4GMNS. You can directly call pg.perform_simple_simulation(network) to perform DTA based on your own agent.csv. The full sample code is listed below.
import path4gmns as pg

network = pg.read_network()
pg.read_zones(network)
pg.load_demand(network)

pg.perform_simple_simulation(network)
print('complete dynamic simulation.\n')

print('writing agent trajectories')
pg.output_agent_trajectory(network)

You can even continue the UE process starting from your own agent.csv. Details can be found here.
As this "issue" is more toward a question or a discussion, in the future you may want to consider discussions, which is a more proper place.

您好，您的邮件我已收到，谢谢。Hello, your email has been received, thank you.


Update StringExtensions.bas

Brought variable declaration out of loop

Thanks! I didn't see your PR until now, sorry.


feat: support proxy functionality for scale out

Initial change set for proxying requests.
What works?
Running curl -v http://localhost:9000/v2/debian/tags/list towards member0 will get successfully proxied to member1 and the client gets back the result.
What's TODO:

Need to refactor the code to see if cluster stuff can go back into a separate package (there's a lot of cross dependency)
Need to see if the approach is correct and scalable (wrapping the handlers)
Need to proxy the other requests too.
Need to cleanup debug statements.

Good progress so far!

There should be a cluster test under tests/
Here is a blackbox test:
Create a zot cluster with N replicas.
Start a haproxy reverse proxy which points to these N replicas.
Use the zb benchmarking tool to generate traffic. There should be no failures.

Closing this in favor of a new PR to the main repo.


Bluetooth Permission on Android

Hi James,
looking at the code, it seems that currently the Bluetooth permission is not supported on Android, am I right?
Do you have any plan to support it in the future?
Thanks,
Marco.

There is no run time permission check needed for Bluetooth. You simply add it to your manifest and it is always granted. There is no need for it to be added.
See: https://developer.android.com/training/permissions/requesting.html

Thank you james for the explaination and please accept my apologies for bothering :)

There is no bother at all :) Good question.


fails when --environment=production

I've been able to get things to work (custom server, example #6) in ember server within a development environment.  But when I try to run ember serve --environment=production I get a blank page.  The console reports Uncaught Error: Could not find module simple-auth/authenticators/base.
  I've searched for hours to no avail...
Thanks!

@dbinetti How did you resolved this issue?. I am facing exact issue even in development mode.


Removing invalid javadoc tags

Fair reason for failure...
https://travis-ci.org/mpollmeier/orientdb-gremlin#L773
Suggestions?

Why did you add the 'release' profile? If it's needed we could probably disable the gpg step in the pipeline...
Independently of that: Currently only I can sign those artifacts (and therefor publish). I'm happy to make you able to sign and publish as well, but I'm not sure if we can (or should) get travis to do be able to publish.

I only wanted to package the javadocs... I guess I will need to move it outside the profile.  What do you think?

Can you create a separate profile to package up the javadocs? Or make javadoc generation part of the 'travis' profile?

just released 3.1.1-incubating.0


Abort search if we go over the time limit

I christen this the "axe" method, in light of what it does to the search tree.

Score of New vs Old: 100 - 35 - 73  [0.656] 208
ELO difference: 112.33 +/- 39.01
SPRT: llr 2.96, lbound -2.94, ubound 2.94 - H1 was accepted
Tested-by: Dan Ravensloft
Waiting on you, @japanoise. If you say nothing by 5pm, I'll merge anyway.


Do not log raw table metadata

This change removes an extraneous log message with raw table metadata.

This change is

Pull Request Test Coverage Report for Build 1263

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.002%) to 94.569%

Totals

Change from base Build 1260:
-0.002%

Covered Lines:
2229

Relevant Lines:
2357

💛  - Coveralls


Remove erl_crash.dump file

This has nothing to do in a repository.

I think I need to restore this project and make it back alive.

Cheers!
I will add it to the erlang.mk package index now that you merged this, so erlang.mk people will easily be able to find it from now on.

I mean I added it. :-)


Detailed setup in README

This project deserves more contributors, let's make it easier for people to get onboard. Some might move elsewhere if the setup  is not explained in detail. We should add things like npm install or yarn to install dependencies, how to setup the airtable API keys... It might seem obvious but doing so will increase this project's adoption

You're absolutely right, this isn't very contributor friendly..
Let me think about this and try to improve things + update developer documentation.
Thanks for sharing this!

Closing. Data is now stored on the repo itself. No longer using Airtable, so probably not relevant anymore.


fix move shape and add grey version

@xavijam could you take a look?

Opinion: for me, the name of the shape shouldn't be move, because it doesn't represent anything of the element, just the action. I'd try something like:
.CDB-Shape-rectsHandle {}

Looks great :tada:


Confusion about VSIX installation

I don't understand why the Windows App SDK VSIX is installed via download links on this page, rather from the Manage Extensions dialog within Visual Studio 2022.
Also, I don't understand why, when I do look at the Manage Extensions dialog in VS2022 -- I search for Windows App SDK, and the only entry says "Windows App SDK (Experimental) [Preview]." It is marked version <IP_ADDRESS>489432.
This makes no sense, since this page talks about two different channels: Experimental, and Preview. Why is the entry in the dialog box labeled as BOTH (Experiemental) [Preview].

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8c95c3c2-b81a-5682-5187-9f1328f17cf5
Version Independent ID: 1a4d4425-689e-4d3a-1248-a1dd5789d285
Content: Install tools for Windows app development - Windows apps
Content Source: hub/apps/windows-app-sdk/set-up-your-development-environment.md
Product: reunion
Technology: get-started
GitHub Login: @zaryaf
Microsoft Alias: zafaraj

Screen capture attached...which is it, "Experimental", or "Preview"? And why isn't the App SDK  VSIX available by the usual means?

Hi, @jcb9000, and thanks for enquiring about this.
The documentation is correct. The VS2019 VSIXes are on the Download Center (and show up in Extensions > Manage Extensions). The VS2022 VSIXes are available in a different way (through a standalone download).
If/when the state of where downloads live (and how to obtain/install them) changes, we'll keep the documentation up to date.
The feedback channel you're using here (Send feedback about > This page) is for feedback about the documentation in this topic itself, as published. For example, if the content is incorrect or incomplete.
For questions (or requests for help) regarding a specific product or scenario (including how it's designed), one option is to click Send feedback about > This product, and you'll be taken to Microsoft Q&A.
About the Windows App SDK specifically: to provide feedback, or to report other issues, add your feedback to an existing issue or file a new issue on the WindowsAppSDK GitHub repo.
Thanks!
-Steve


Roll Engine from 0f7cdca65fba to b9a223c1167a (2 revisions)

https://github.com/flutter/engine/compare/0f7cdca65fba...b9a223c1167a
2020-11-08<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from rMD6SyXwO... to ZOJgUMChm... (flutter/engine#22389)
2020-11-07<EMAIL_ADDRESS>Roll Dart SDK from fe12b0536f42 to a188781c9fc8 (1 revision) (flutter/engine#22386)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from rMD6SyXwOErg to ZOJgUMChm4lN
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


Add evaluation root project

Implementing Evaluation Based on RAGAS Framework
Description
This pull request marks the beginning of our implementation of evaluation metrics for our Retrieval Augmented Generation (RAG) pipelines using the RAGAS framework.
Background
RAGAS (RAG Assessment) is a comprehensive framework designed to evaluate RAG pipelines. RAG pipelines utilize external data to enhance the context provided to Large Language Models (LLMs). While building these pipelines is facilitated by existing tools, evaluating their performance quantitatively remains a challenge. RAGAS addresses this gap by offering tools based on cutting-edge research to evaluate LLM-generated text and provide valuable insights into the effectiveness of RAG pipelines.
Features to be Implemented
The implementation will leverage Kernel Memory to deliver the following evaluation features:

Faithfulness: Ensuring the generated text accurately represents the source information.
Answer Relevancy: Assessing the pertinence of the answer in relation to the query.
Context Recall: Measuring the proportion of relevant context retrieved.
Context Precision: Evaluating the accuracy of the retrieved context.
Context Relevancy: Determining the relevance of the provided context to the query.
Context Entity Recall: Checking the retrieval of key entities within the context.
Answer Semantic Similarity: Comparing the semantic similarity between the generated answer and the expected answer.
Answer Correctness: Verifying the factual correctness of the generated answers.

Integration
RAGAS will be integrated into our CI/CD pipeline to enable continuous performance monitoring and evaluation of our RAG pipelines. This integration will ensure that our RAG systems consistently meet the desired performance benchmarks.
Next Steps

Implement evaluation metrics: Develop the specified evaluation features using Kernel Memory.
Unit tests: Tests the framework.
Integrate with CI/CD: Configure the evaluation checks to run automatically in our CI/CD pipeline.

Looks like the build is broken, maybe something's been removed from the solution?

Looks like the Release build is broken, maybe something's been removed from the solution?

I'll take a look asap.

Looks like the Release build is broken, maybe something's been removed from the solution?

I'll take a look asap.

no worries I just pushed a fix


Kicad Gerberzipper default language should not be Portuguese

Hi there 👋! Today I downloaded your plugin and noticed that the plugin's default language is Portuguese. I assume this was not intended (Sorry Portuguese people). I'm on MacOS (en_us) and my KiCad's language settings are set to 'Default'. I noticed that the lang variable in the getstr function is None, which somehow causes the function to retrieve the Portuguese labels. To fix this I have made sure that lang is set to 'default' if it is None.

Thank you!


Anaconda

I wonder if it is possible to make the package compatible with conda? I have anaconda installed and pip may raise conflict.

I have figured out using pip in anaconda. Unrelated, I found "implicit none (external)" in fortran/msise00_sub.f gives error, and it works when "(external)" is removed.


the route has changed

the route has changed in the last minute and we forgot to change it here

:+1:

+1


Enable occupancy update every time a message arrives

Enables to the update of occupancy state, even if it's true already.
Added configuration dialog to enable and disable this feature.

related to https://github.com/arteck/ioBroker.zigbee2mqtt/issues/119
Don't know why I never created the pull request.
Happy to discuss

plz resolve the conflicts

Not able to resolv as I don't have write access. Found my misstake. Will close this PR and issue a new one without conflicts.


remove dead link

Dead Link
The inside diagnostics tools link is dead.

Since Rico Mariani no longer works for Microsoft and his blog is not longer being updated, I would also suggest adding Vance Morrison's blog to the list.

Thanks for adding the link to Vance's blog, @jameswelle. The direct link is fine. We'll merge your PR now. Your changes should appear on docs.microsoft.com in the next day or two.


[Fix #10204] Add new Lint/UnsafeGlobalVariables cop

This cop looks for uses of unsafe global variables.
Since this is my first contribution, I've based this cop on Style/GlobalVars to follow coding conventions as best as possible. I'm unsure if it makes sense to introduce a new cop for this, since Style/GlobalVars is quite similar.
Fixes #10204

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

I'm unsure if it makes sense to introduce a new cop for this, since Style/GlobalVars is quite similar.

Yeah, that's a good point. Perhaps this can be a feature of the other cop controlled by a boolean flag. One more thing - we should clearly document what "unsafe" means exactly.

Thank you @bbatsov for the feedback. I don't have time to work on this now and in the foreseeable future though. Anybody can pick this up where I left it.

No rush.


feat(apps/prod/bazel-remote): add resource limits

/hold

/hold should be merged at night when no job runs


Monitor Tree fetching

We want to report success at fetching tree permits to our uptime monitor.
The report will be for each source for tree permit data. This task then includes:

create a heartbeat monitor at uptime robot for each tree data source:

Haifa
Jerusalem
Rest of Israel (Pkid yeearot).

The monitor should expect the heartbeat at the same interval as defined in production.

At the success of each tree permit crawl, report success to the uptime robot.
Setup slack notification on uptime robot so we are notified on failures.

Potential: report the number of trees fetched. Expect this to be larger of a certain number

need to start the monitor in uptime robot site on deploy


add support of sourcetree

add support of sourcetree.

https://www.sourcetreeapp.com/download
https://www.sourcetreeapp.com/download-archives

download links splitted from atlassian site and jsons, they are hardcoded in to html page. 💩

Nah

Nah

workround:  we will be add support of custom json feeds of SourceTree from EpicMorg/atlassian-json repo.

workround:  we will be add support of custom json feeds of SourceTree from EpicMorg/atlassian-json repo.


STRF-9610: node 13/14 support + npm 7/8

Regarding failing windows test, it is exiting in windows for some reason with an error.
Other environments(linux and macos) and previously in master, they have same result as windows, but not exiting with an error.

@jairo-bc what about build-darwin-node-14?

@zvuki restarted it and now looks good.


pythonPackages.capstone is broken

Issue description
The capstone python package is broken, because the patch applied to it has a different hash value than expected. Changing the hash seems to fix the issue, but I'm hesitant to make a pull request when I don't know why it changed.
ping @bennofs.
Steps to reproduce
nix-shell -p python27Packages.capstone
output` path ‘/nix/store/jvzqbfqbz88bwg4wib1y30qzr3x34iaj-23fe9f36622573c747e2bab6119ff245437bf276.patch’ has sha256 hash ‘0gsj1sdzcprv1ha026f897qa2xzb8cm9d0gdyiax94ardp07dqpc’ when ‘0yizqrdlxqxn16873593kdx2vrr7gvvilhgcf9xy6hr0603d3m5r’ was expected
cannot build derivation ‘/nix/store/jxpyzi51b7j0b2jicdaxpgpccq0a1vck-python3.5-capstone-3.0.4.drv’: 1 dependencies couldn't be built

Technical details

System: 17.09pre105622.f0fac3b578 (Hummingbird)
Nix version: nix-env (Nix) 1.11.8
Nixpkgs version: 17.09pre105622.f0fac3b578

Possibly related - https://github.com/NixOS/nixpkgs/issues/25154

Possibly related - #25154

Ah thanks, that is indeed the issue. I'll close this then, since the commit has already been reverted.


Protocols 68

Relocate existing ManageSieve stuff.

Related to https://github.com/apache/james-jsieve/pull/3

Delete ~2000 not needed lines of code... Unit tests pending, but it should be OK.


What's the meaning of last_weight_accumulator?

I noticed that the last_weight_accumulator in the train function is not used. Will this cause the network training speed to drop?

you can ignore it, it was for some older experiments.


Upgrade to scala 2.12.1 - refs #235. Add topics to config.json - refs…

Upgrade to scala 2.12.1 - refs #235.
Add topics to config.json - refs #125

Looks good @ricemery!


all-the-icons broken

I have used the M-X then input all-the-icons-install-fonts. Also I have install the all-the-icons by fc-cache-fv.
I eve rebuild the doom-emacs. But all above don't work. The icons are still broken.

BTW, I use archlinux.

Thx for your comment, I mean that I install the icons by M-x all-the-icons at the first time then it didn't work. And I reinstall the icons in the ~/.local/share/fonts/ but it didn't work neither.

I cannot reproduce this. I'm an Arch too. To clarify, you've run M-x all-the-icons-install-fonts, restarted Emacs, and no dice? Perhaps it's something to do with your Arch setup?

Does fc-list list the all-the-icons fonts?
Are you using infinality-bundle, by chance?

Thx for helping me. I will try it later.

[d011ar5@Retr0 ~]$ fc-list | grep all-the
/home/d011ar5/.local/share/fonts/all-the-icons.ttf: all\-the\-icons:style=Regular

I got this. Then the icon still can't work.

Odd. Nothing appears to be amiss. Are you using terminal emacs, by chance?

I have check terminal and applications both. BTW, I still not set the i3-wm, so I still use the xfce4.

Does (find-font (font-spec "github-octicons")) and (find-font (font-spec "all-the-icons")) work? (You can run them in M-x eval-expression)
It could be a malformed fontconfig, OS misbehavior (maybe xfce doesn't respect ~/.local/share/fonts), or perhaps I misunderstood what "broken" means to you. Do you have a screenshot?

works well on mac for me

All-the-icons used to work as intended for me up until yesterday when I finally rebooted my machine and now the fonts don't show up any more. The screenshot below should give you an indication:

Running (find-font (font-spec :family "all-the-icons")) returns nil, but fc-list | grep all-the shows that it is installed in the ~/.local/fonts directory. I also tried running make update and bin/doom refresh but to no avail.

@siddharthshekar  Did you do anything with system fonts between the period you had it working and rebooting? I dont see why else this would happen, looks like emacs is not picking up the font and is falling back to the wrong one. Also try refreshing font cache, fc-cache -r.

I went into ~/.local/share/fonts where all-the-icons-install-fonts seems to have installed the fonts for me, deleted the relevant .ttf files, updated using fc-cache and reran all-the-icons-install-fonts. Everything works properly now :+1:

I reported this upstream, it's not really a problem with doom so it should be closed here.

A couple days ago a PR to fix all-the-icons-install-fonts was merged, which should resolve this issue. You can update your packages with bin/doom update. Let me know if that isn't the case and I'll reopen this.

I'm having the same problem with emacs 27.1
Running (find-font (font-spec :family "all-the-icons")) returns nil but
fc-list  | grep all-the
/home/maikol/.local/share/fonts/all-the-icons.ttf: all\-the\-icons:style=Regular

emacs   version    27.1
        features   XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LIBSYSTEMD JSON PDUMPER LCMS2 GMP
        build      Aug 16, 2020
        buildopts  (--disable-build-details --with-pop --without-hesiod --with-gameuser=:games --with-kerberos --with-kerberos5 --with-file-notification=inotify --with-modules --enable-autodepend --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --localstatedir=/var --sharedstatedir=/var/lib --libexecdir=/usr/lib --enable-locallisppath=/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp --with-x --with-xim --with-sound --with-xpm --with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-dbus --with-xft --without-gpm --with-x-toolkit=gtk3 --with-toolkit-scroll-bars --x-includes=/usr/include --x-libraries=/usr/lib64 --with-libotf --with-m17n-flt --with-cairo --with-xwidgets --build=x86_64-suse-linux --with-dumping=pdumper 'CFLAGS=-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -D_GNU_SOURCE -DGDK_DISABLE_DEPRECATION_WARNINGS -DGLIB_DISABLE_DEPRECATION_WARNINGS -pipe -Wno-pointer-sign -Wno-unused-variable -Wno-unused-label -fno-optimize-sibling-calls -fno-PIE -DSYSTEM_PURESIZE_EXTRA=55000 	 -DSITELOAD_PURESIZE_EXTRA=10000 ' LDFLAGS=-Wl,-O2)
        windowsys  x
        daemonp    server-running
doom    version    2.0.9
        build      HEAD -> develop 9a8fc46c 2020-08-15 15:13:50 -0400
        dir        ~/.doom.d/
system  type       gnu/linux
        config     x86_64-suse-linux-gnu
        shell      /bin/bash
        uname      Linux 5.3.18-lp152.33-default #1 SMP Wed Jul 22 06:32:33 UTC 2020 (e5a8383) x86_64
        path       (~/.emacs.d/bin/ ~/bin /usr/local/bin /usr/bin /bin /snap/bin /usr/lib/emacs/27.1/x86_64-suse-linux/)
config  envfile    envvar-file
        elc-files  0
        modules    (:completion (company +childframe) helm ivy :ui deft doom doom-dashboard fill-column hl-todo modeline nav-flash ophints (popup +defaults) pretty-code tabs treemacs vc-gutter vi-tilde-fringe window-select zen :editor (evil +everywhere) file-templates fold (format +onsave) multiple-cursors snippets word-wrap :emacs dired electric undo vc :checkers syntax spell grammar :tools (eval +overlay) (lookup +dictionary +offline) (lsp +peek +eglot) magit pdf :os tty :lang emacs-lisp (ess +lsp) (latex +latexmk +cdlatex +fold +lsp) markdown (org +pomodoro +roam +dragndrop +noter +pandoc) python sh :app calendar :config (default +bindings +smartparens))
        packages   ((evil-tutor) (org-fragtog) (real-auto-save) (org-roam-bibtex) (helm-bibtex) (org-ref) (org-roam-server) (org-roam-dashboard :recipe (:host github :repo publicimageltd/org-roam-dashboard)) (polymode) (poly-R) (ess-view) (minions) (beacon) (orgonomic :recipe (:host github :repo aaronjensen/emacs-orgonomic)) (org-clock-convenience) (secretaria) (company-statistics) (company-math) (move-dup) (discover-my-major) (academic-phrases) (org-tracktable))
        unpin      (org-roam company-org-roam org-roam-bibtex)
        elpa       (n/a)


[Bug] No longer marking chapters as read.

Device information

Tachiyomi version: 2.0.10
Android phone & version: Pixel 2 XL and android 10

Steps to reproduce

read a chapter
go to mangadex, and that chapter isn't marked as read.

Expected behavior
it should mark chapters as read
Actual behavior
it is not updating those chapters as read.
Other details
seems to just be the chapters having an issue. Because when i switch from plan to read to reading, that is updated in mangadex.

This is by design.  As downloading a chapter was marking it read even if you didn't read.  I eventually plan to sync read to dex but want it to be deliberate and opt in

This is by design.  As downloading a chapter was marking it read even if you didn't read.  I eventually plan to sync read to dex but want it to be deliberate and opt in

To add the original marking as read was issue with their api.


Updates with local, AML remote compute and HyperDrive notebooks

Updates with local, AML remote compute and HyperDrive notebooks.

This code includes usage of custom Environment with Estimator.

TO DO:

TO DO: In Remote AML Compute notebook:

HyperDriveConfig with estimator=run_config or pipeline=run_config is NOT working.

TO DO: In Local compute notebook:

Add runs Logging in AML Workspave even when runs are local compute.

This PR is now also including AutoML notebooks


Remove unused tests codebase from Rancher container image

Problem
charts/tests folder repository was adding size and potential vulnerabilities
Solution
Remove folder from Dockerfile and prevent catalogv2 package of re-creating it.

@nicholasSUSE Discussed offline. This change doesn't provide an important benefit.

The solution for this has changed, closing


Android/Chrome camera popup empy

Using Meet with Chrome on Android, the camera popup has no texts. Clicking the options in it still works (can switch to rear camera and back to front).

Hi @ile, thanks for the report. 👍
Can you share what phone, OS version, and Chrome version you used? I don't have an Android phone at hand, so I could only test it with BrowserStack (where it worked for me).

Yes sure, sorry I didn't include those already.
Samsung Galaxy A03, Android 13, and "One UI Core version 5.1".
I had to get an actual Android phone for app testing, as I noticed I will see more issues that way.

Did you allow all permissions?
Are you seeing this on https://meet.livekit.io too or only on a locally hosted example?
I tried to repro on meet.livekit.io with a Samsung Galaxy S10+ Android 12 and could not reproduce

I couldn't reproduce it on https://meet.livekit.io. I will test on another server soon to see if it's server related.

Texts work fine on the other server. Sorry about the false alarm. :face_with_head_bandage:


ci: set up github actions for checking format

Description

These actions will only be triggered when pr/merge to main branch happens.
Related Issue

Type of Change

[ ] Bug fix
[ ] New feature
[ ] Refactoring
[ ] Documentation update
[ ] Test update
[x] CI/CD pipeline update
[ ] Other changes

Checklist

[x] I have reviewed my code to ensure it meets project standards.
[x] I have added comments in complex or non-obvious parts of the code.
[x] I have updated README.md (for new features).
[x] I have updated CHANGELOG.md (for each change).
[x] I have included tests or test updates that verify my changes.
[x] I have ensured that new and existing unit tests pass locally.
[x] I have requested a review from another team member.

Reviewer Checklist

[ ] I have verified that all unit tests pass successfully.
[ ] I have ensured that documentation, including README.md and CHANGELOG.md, is updated.
[ ] I have checked that the code follows dependency rules specified by Clean Architecture.
[ ] I have confirmed that comments are clear, concise, and current.
[ ] I have verified the code is free of hardcoded values, unnecessary complexity, or unused code.

@ivorkchan The workflow looks pretty cool! I was wondering can we also run all unit tests at the CI test as well. You can add it here if you want, but I can also create it myself in a separate PR, as I also want to learn about how to set up CI workflow!

@ivorkchan The workflow looks pretty cool! I was wondering can we also run all unit tests at the CI test as well. You can add it here if you want, but I can also create it myself in a separate PR, as I also want to learn about how to set up CI workflow!

Actually spotless is a maven plugin, so the workflow's function is to set up a minimal runtime environment for Maven, then run mvn spotless:check, I believe this could be done by something like mvn test or mvn validate.


Allow us to control "what goes into" @workspace

For me, the performance and usability of @workspace has been extremely poor and disappointing. While resources on the topic are hard to find, I suspect this may be because we have huge amounts of test data and snapshots in our workspaces, literally hundreds of MB, which I would not typically want to 'poison' the context. I would love a way to customize what is considered 'relevant context' somehow, even as simple as a settings entry that lets me specify a list of included/excluded glob patterns.

To make copilot ignore certain files:

Add them to your .gitignore if they are temporary files that shouldn't be committed
Create a .copilotignore file at the root of your project. This works just like a .gitignore and lets you specify globs that will be ignored


Define Binary Ninja Macros Persistence or Setting

What is the feature you'd like to have?
Add setting to enable "Define Binary Ninja Macros" by default when selecting "Analysis > Import Header File"

Is your feature request related to a problem?
N/A
Are any alternative solutions acceptable?

Remember the setting each time, i.e. make it persistent.
Just clicking it each time. ☹

Additional Information:
I keep most of my type definitions in a C library for easy source control. I make heavy use of the Binary Ninja macros which define the C type qualifiers, like __padding. This definition isn't found by the parser if "Define Binary Ninja Macros" isn't checked.

For future reference for anyone seeing this issue, BN_TYPE_PARSER has to be defined in the exact header file that's being imported, not other header files that are imported within that file. For example, if you're importing <path/to/foo.h, make sure to #define BN_TYPE_PARSER in foo.h, not bar.h that foo.h imports. At least, I'm fairly confident this is the case. 😃

That is correct, it only reads the file(s) specified and sets the checkbox based on their contents on disk, before any sort of parsing is run.


Integrate Localization Platform to Translate UI and Source Texts

Crowdin was selected to be the localization platform. Update docs will be provided in the future.


Accessibility

Hi, I'm not from the development team and I was looking at the project kiali/kiali-ui in general, I realized that there is nothing relevant in the project regarding accessibility, like HTML attributes (aria-label, aria-required), if the HTML is really semantic, accessibility tests, anyway, is something will be seen in the future?

Hello Antonio,
this is an excellent point.
I wonder if you can give us a hint on how to best achieve that in PatternFly/React ?

Hi @pilhuhn ... I can do this on patternyfly-react, thanks a lot 😄

@serenamarie125 Can you guide us here?

So @pilhuhn ... sorry for the delay 😅
I was seeing some things on patternfly, and I really like this project, is really good semantically, but i thing that can improve too, your header.
I will start with this example.
So ... semantics in HTML helps a lot an accessible code, and the header looks some weird to me.

first of all, is a nav tag, some reason?
we should use the aria-label attribute (The aria-label attribute is used to define a string that labels the current element. Use it in cases where a text label is not visible on the screen. If there is visible text labeling the element, use aria-labelledby instead.) to describe all the main tags on the first step
The kiali image on header should be a heading, like h1 or something like the alt (not empty) or title
I'm not sure, but I thing your reset is hiding all the outlines, and this is a good reference to accessibility
Tests, in react doc, they recomend axe, is a really good start, ind the future the team can discuss more things to do, like use wave but the best is always try to use someone who actually uses accessibility tools.

So, I think that's a good start, what do you think?

@serenamarie125 @abonas hey, @antoniojunyor helped me with accessibility this week and he has some ideas on how we might improve accessiblity on kiali and patternfly, how can we do to collaborate with him on it?

@cfcosta Sure bro, I ant to help.
First, I need to understand some components on patternfly, as I said on my example about the header, I think i will have to create some issues on patternfly to answer some questions that I have, idk yet 😅


Resource grows too big with multiple operators for same resource

Long story short
I'm writing an operator that uses the "multiple operator on same resource" feature in 0.27 but found an issue that I'm not sure whether it's a bug or if I'm doing something wrong.
The annotations used to persist kopf diffbase and progress data end up recursively included, causing the resource object to grow very large.
Description
If there are 2 kopf operators that manage the same resource, with custom persistence settings, they will include the annotations stored by themselves and the other operator in their own snapshot, escaping it while doing so. The result is that annotations end up including the entire history of changes until the resource grows too big and updates start failing with error 422 Unprocessable Entity.
The code snippet to reproduce the issue
Write the following code into op1.py and op2.py
import kopf

@kopf.on.create('zalando.org', 'v1', 'kopfexamples')
def create_fn(spec, **kwargs):
    print(f"{__name__}: And here we are! Creating: {spec}")

@kopf.on.startup()
def on_startup(settings: kopf.OperatorSettings, **_):
    settings.persistence.progress_storage = kopf.AnnotationsProgressStorage(prefix=__name__)
    settings.persistence.diffbase_storage = kopf.AnnotationsDiffBaseStorage(name=__name__+'/last-handled-configuration')
    settings.persistence.finalizer = __name__+"/kopf-finalizer"

The exact command to reproduce the issue
kopf run op1.py &
kopf run op2.py &
kubectl create -f obj.yaml
kubectl get kopfexamples.zalando.org -oyaml

The full output of the command that failed
$ kopf run op1.py
[2020-06-08 15:30:19,511] kopf.activities.star [INFO    ] Activity 'on_startup' succeeded.
[2020-06-08 15:30:19,512] kopf.reactor.activit [INFO    ] Initial authentication has been initiated.
[2020-06-08 15:30:19,520] kopf.activities.auth [INFO    ] Activity 'login_via_client' succeeded.
[2020-06-08 15:30:19,520] kopf.reactor.activit [INFO    ] Initial authentication has finished.
[2020-06-08 15:30:19,534] kopf.engines.peering [WARNING ] Default peering object not found, falling back to the standalone mode.
op1: And here we are! Creating: {'duration': '1m', 'field': 'value', 'items': ['item1', 'item2']}
[2020-06-08 15:30:32,316] kopf.objects         [INFO    ] [default/kopf-example-1] Handler 'create_fn' succeeded.
[2020-06-08 15:30:32,316] kopf.objects         [INFO    ] [default/kopf-example-1] All handlers succeeded for creation.

$ kopf run op2.py
[2020-06-08 15:30:58,358] kopf.activities.star [INFO    ] Activity 'on_startup' succeeded.
[2020-06-08 15:30:58,358] kopf.reactor.activit [INFO    ] Initial authentication has been initiated.
[2020-06-08 15:30:58,372] kopf.activities.auth [INFO    ] Activity 'login_via_client' succeeded.
[2020-06-08 15:30:58,372] kopf.reactor.activit [INFO    ] Initial authentication has finished.
[2020-06-08 15:30:58,386] kopf.engines.peering [WARNING ] Default peering object not found, falling back to the standalone mode.
op2: And here we are! Creating: {'duration': '1m', 'field': 'value', 'items': ['item1', 'item2']}
[2020-06-08 15:30:58,494] kopf.objects         [INFO    ] [default/kopf-example-1] Handler 'create_fn' succeeded.
[2020-06-08 15:30:58,494] kopf.objects         [INFO    ] [default/kopf-example-1] All handlers succeeded for creation.
[2020-06-08 15:36:00,786] kopf.reactor.queuein [ERROR   ] functools.partial(<function process_resource_event at 0x7fc0d01f8ef0>, lifecycle=<function asap at 0x7fc0f0896c20>, registry=<kopf.toolkits.legacy_registries.SmartGlobalRegistry object at 0x7fc0e17f9550>, settings=OperatorSettings(logging=LoggingSettings(), posting=PostingSettings(enabled=True, level=20), watching=WatchingSettings(server_timeout=None, client_timeout=None, connect_timeout=None, reconnect_backoff=0.1), batching=BatchingSettings(worker_limit=None, idle_timeout=5.0, batch_window=0.1, exit_timeout=2.0), execution=ExecutionSettings(executor=<concurrent.futures.thread.ThreadPoolExecutor object at 0x7fc0e17f9350>, _max_workers=None), background=BackgroundSettings(cancellation_polling=60, instant_exit_timeout=None, instant_exit_zero_time_cycles=10), persistence=PersistenceSettings(finalizer='op2/kopf-finalizer', progress_storage=<kopf.storage.progress.AnnotationsProgressStorage object at 0x7fc0e1808790>, diffbase_storage=<kopf.storage.diffbase.AnnotationsDiffBaseStorage object at 0x7fc0e17f9490>)), memories=<kopf.structs.containers.ResourceMemories object at 0x7fc0e17f9b90>, resource=Resource(group='zalando.org', version='v1', plural='kopfexamples'), event_queue=<Queue at 0x7fc0e17f9d10 maxsize=0 _getters[1] tasks=2>) failed with an exception. Ignoring the event.
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/reactor/queueing.py", line 187, in worker
    await processor(raw_event=raw_event, replenished=replenished)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/reactor/processing.py", line 204, in process_resource_event
    replenished=replenished,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/reactor/processing.py", line 227, in apply_reaction_outcomes
    await patching.patch_obj(resource=resource, patch=patch, body=body)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/clients/auth.py", line 45, in wrapper
    return await fn(*args, **kwargs, context=context)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/clients/patching.py", line 59, in patch_obj
    raise_for_status=True,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/client.py", line 504, in _request
    await resp.start(conn)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 860, in start
    self._continue = None
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/helpers.py", line 596, in __exit__
    raise asyncio.TimeoutError from None
concurrent.futures._base.TimeoutError

[2020-06-08 15:38:15,025] kopf.reactor.queuein [ERROR   ] functools.partial(<function process_resource_event at 0x7fc0d01f8ef0>, lifecycle=<function asap at 0x7fc0f0896c20>, registry=<kopf.toolkits.legacy_registries.SmartGlobalRegistry object at 0x7fc0e17f9550>, settings=OperatorSettings(logging=LoggingSettings(), posting=PostingSettings(enabled=True, level=20), watching=WatchingSettings(server_timeout=None, client_timeout=None, connect_timeout=None, reconnect_backoff=0.1), batching=BatchingSettings(worker_limit=None, idle_timeout=5.0, batch_window=0.1, exit_timeout=2.0), execution=ExecutionSettings(executor=<concurrent.futures.thread.ThreadPoolExecutor object at 0x7fc0e17f9350>, _max_workers=None), background=BackgroundSettings(cancellation_polling=60, instant_exit_timeout=None, instant_exit_zero_time_cycles=10), persistence=PersistenceSettings(finalizer='op2/kopf-finalizer', progress_storage=<kopf.storage.progress.AnnotationsProgressStorage object at 0x7fc0e1808790>, diffbase_storage=<kopf.storage.diffbase.AnnotationsDiffBaseStorage object at 0x7fc0e17f9490>)), memories=<kopf.structs.containers.ResourceMemories object at 0x7fc0e17f9b90>, resource=Resource(group='zalando.org', version='v1', plural='kopfexamples'), event_queue=<Queue at 0x7fc0e17f9d10 maxsize=0 _getters[1] tasks=2>) failed with an exception. Ignoring the event.
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/reactor/queueing.py", line 187, in worker
    await processor(raw_event=raw_event, replenished=replenished)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/reactor/processing.py", line 204, in process_resource_event
    replenished=replenished,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/reactor/processing.py", line 227, in apply_reaction_outcomes
    await patching.patch_obj(resource=resource, patch=patch, body=body)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/clients/auth.py", line 45, in wrapper
    return await fn(*args, **kwargs, context=context)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kopf/clients/patching.py", line 59, in patch_obj
    raise_for_status=True,
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/client.py", line 588, in _request
    resp.raise_for_status()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 946, in raise_for_status
    headers=self.headers)
aiohttp.client_exceptions.ClientResponseError: 422, message='Unprocessable Entity', url=URL('https://kubernetes.docker.internal:6443/apis/zalando.org/v1/namespaces/default/kopfexamples/kopf-example-1')
(snip)

$ kubectl get kopfexamples.zalando.org -oyaml
apiVersion: v1
items:
- apiVersion: zalando.org/v1
  kind: KopfExample
  metadata:
    annotations:
      op1/last-handled-configuration: '{"spec": {"duration": "1m", "field": "value",
        "items": ["item1", "item2"]}, "metadata": {"labels": {"somelabel": "somevalue"},
        "annotations": {"op2/last-handled-configuration": "{\"spec\": {\"duration\":
        \"1m\", \"field\": \"value\", \"items\": [\"item1\", \"item2\"]}, \"metadata\":
        {\"labels\": {\"somelabel\": \"somevalue\"}, \"annotations\": {\"op1/last-handled-configuration\":
        \"{\\\"spec\\\": {\\\"duration\\\": \\\"1m\\\", \\\"field\\\": \\\"value\\\",
        \\\"items\\\": [\\\"item1\\\", \\\"item2\\\"]}, \\\"metadata\\\": {\\\"labels\\\":
        {\\\"somelabel\\\": \\\"somevalue\\\"}, \\\"annotations\\\": {\\\"op2/last-handled-configuration\\\":
        \\\"{\\\\\\\"spec\\\\\\\": {\\\\\\\"duration\\\\\\\": \\\\\\\"1m\\\\\\\",
        \\\\\\\"field\\\\\\\": \\\\\\\"value\\\\\\\", \\\\\\\"items\\\\\\\": [\\\\\\\"item1\\\\\\\",
        \\\\\\\"item2\\\\\\\"]}, \\\\\\\"metadata\\\\\\\": {\\\\\\\"labels\\\\\\\":
        {\\\\\\\"somelabel\\\\\\\": \\\\\\\"somevalue\\\\\\\"}, \\\\\\\"annotations\\\\\\\":
        {\\\\\\\"op1/last-handled-configuration\\\\\\\": \\\\\\\"{\\\\\\\\\\\\\\\"spec\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\"duration\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"1m\\\\\\\\\\\\\\\",
        \\\\\\\\\\\\\\\"field\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\\",
        \\\\\\\\\\\\\\\"items\\\\\\\\\\\\\\\": [\\\\\\\\\\\\\\\"item1\\\\\\\\\\\\\\\",
        \\\\\\\\\\\\\\\"item2\\\\\\\\\\\\\\\"]}, \\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\"labels\\\\\\\\\\\\\\\": {\\\\\\\\\\\\\\\"somelabel\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\"somevalue\\\\\\\\\\\\\\\"}, \\\\\\\\\\\\\\\"annotations\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\"op2/last-handled-configuration\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"spec\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"duration\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"1m\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"items\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"item1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"item2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]},
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"labels\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\": {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"somelabel\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"somevalue\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"},
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"annotations\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"op1/last-handled-configuration\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"spec\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"duration\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"1m\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"items\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        [\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"item1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"item2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]},
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"labels\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"somelabel\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"somevalue\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"},
        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"annotations\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":
        {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"op2/last-handled-configuration\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":

(snip)

$ kubectl get kopfexamples.zalando.org kopf-example-1 -oyaml|wc
     250     401  165593

Environment

Kopf version: 0.27
Kubernetes version: v1.16.6-beta.0  (docker-desktop for macos)
Python version: 3.7.5
OS/platform: macos

Python packages installed

aiohttp==3.6.1
aiojobs==0.2.2
astroid==2.0.4
async-timeout==3.0.1
attrs==19.2.0
autopep8==1.4.2
cachetools==3.1.1
certifi==2019.9.11
chardet==3.0.4
clang==<IP_ADDRESS>
Click==7.0
colored==1.4.0
google-auth==1.6.3
idna==2.8
iso8601==0.1.12
isort==4.3.4
kopf==0.27
kubernetes==10.0.1
lazy-object-proxy==1.3.1
mccabe==0.6.1
multidict==4.5.2
oauthlib==3.1.0
pip==20.1.1
prompt-toolkit==2.0.6
pyasn1==0.4.7
pyasn1-modules==0.2.7
pycodestyle==2.4.0
pykube-ng==19.10.0
pylint==2.1.1
python-dateutil==2.8.0
PyYAML==5.1.2
requests==2.22.0
requests-oauthlib==1.2.0
rsa==4.0
setuptools==42.0.2
six==1.11.0
typing-extensions==<IP_ADDRESS>
urllib3==1.25.6
wcwidth==0.1.7
websocket-client==0.56.0
wheel==0.33.6
wrapt==1.10.11
yarl==1.3.0

Also, is there a way to make kopf write state data only in resources that are of actual interest to the operator? For example, I have Pod event handlers that are filtered by label but all pods in the cluster get annotated by kopf.

@akojima For the latter question: That's strange. If you use labels= or annotations= or when= or any other filters on the handlers, the unrelated objects should not be touched in any way. If that is the case, it is a bug.
And especially, the @kopf.on.event handlers should not cause any annotations stored by Kopf, as they are a low-level "spying" type of handlers.
Can you please report this as a separate issue?

For the former (main) question: That behaviour is explainable, and maybe the desired. Here is what happens:
Since both of the operators are unaware of each other, they do not purge the annotations of each other from the snapshots. Other operator's annotations look like just any other annotations, incl. the human-added ones.
The same would be true for the status fields or any other ways of storing the state on the resource itself — as long as they are indeed unaware of each other.
The logic of cleaning up the resource's body is here: https://github.com/zalando-incubator/kopf/blob/0.27/kopf/storage/progress.py#L233-L235 and in other clear() methods in the same module.
Another bit of it is here: https://github.com/zalando-incubator/kopf/blob/0.27/kopf/storage/diffbase.py#L78-L79
As you can see, either the own prefixes are removed, or kopf.zalando.org/-prefixed annotations are removed (regardless of own identity). Everything else is considered as essential.
To work around this problem you have to make them aware of each other. There are three ways:

Always keep kopf.zalando.org prefix.
Have the same prefix for all your operators (but: beware of the handler names then).
Implement your own progress storage by inheriting from kopf.AnnotationsProgressStorage, and extending its clear() method with few more cleanups of "related" operators — now, both of them will be aware of each other.

The inclusion of own data (op1's data by op1 operator) is not actually happening. In fact, the op1 includes the op2's data, which includes the op1's data.

On a side-note: this is indeed a weird behaviour. I see how confusing it can be. And I am open to any suggestions to make it smoother.
Perhaps, I can add a tiny marker to the content of all progress-/diffbase-related annotations of all Kopf-based operators, and exclude such annotations regardless of their prefixes.
Technically, the content of the annotations is not promised to be a json. It can be any string in any format/notation/syntax. JSON is only used for debuggability. So, adding any kind of markers seems acceptable.

@nolar Thank you for the thorough explanation.
I filed issue #374 for the secondary issue.
As for the main issue, always keeping the default kopf.zalando.org across all operators (+ unique handler names) seems like the simplest workaround.
I also have the impression that sometimes a ping-pong effect is triggered with multiple operators, where one handler notices the other operator adding annotations, then adding data of its own, which is noticed and handled the same way by the other operator. This loops with a flood of messages in --verbose mode, until the patch requests start failing because the resources can't grow any longer.
I switched to a single operator model for my project so this doesn't immediately affect me anymore, but still, anyone using 2 Kopf operators in the same cluster would be affected.
The marker to identify data added by Kopf sounds like a good idea to me.
Another idea would be to use a fixed key pre-prefix/suffix (e.g. myprefix/handler_name-kopf.private instead of myprefix/handler_name).
But generally speaking, what we want is the ability to advertise certain fields as being private to a specific operator instance and thus of no interest to anyone else, regardless of what framework is used to write them. Ideally there would be a standard way of doing that in all of Kubernetes-land, but since there isn't one (as far as I know, I'm new to Kubernetes tho), the only way I can think would be a configurable list of prefixes or suffixes to filter out known private field patterns.

Yes, it is a know issue. Or a known feature. If 2 operators use the same kopf.zalando.org/last-handled-configuration annotation, they will be triggering each other's reactions — like ping-pong indeed — and noticing the changes happening (the annotation is used as a base value for diff calculation).
We had this issue in our apps too. The only proper solution is to have different operator identities (this is why this feature was added). But — back to the original issue — the operators should be somehow aware of each other and/or ignore each other even if unaware.
I'll take it as a priority for version 0.28, together with K8s API throttling (it is quite easy to kill the cluster with all those 422s and ping-pongs going way too fast; see #351).

Solved in https://github.com/nolar/kopf/pull/539 and is available since kopf>=0.28rc2 (combined with multiple operators identities of kopf>=0.27)


Update help and error message of ares-pacakge

:Release Notes:
Update help and error message of ares-pacakge
:Detailed Notes:
Update help and error message of ares-pacakge
for info and info-detail option
:Testing Performed:

Pass unit test
Pass eslint
Check help updated and error message

:Issues Addressed:
[WRN-12303] Write ipk analyze document

Code 👎


pass arguments of --list to definitions()

this is just a quick hack but it pains me there's no built-in filter method for rbenv-install --list even though internally it exists. this patch just exposes it.
$ rbenv install -l 2.6
Available versions:
  2.2.6
  2.6.0-dev
  2.6.0-preview1
  2.6.0-preview2
  rbx-2.2.6
  rbx-2.6

Thanks for the contribution, but it's easy enough to just pipe the output to grep or another search tool yourself! That's the philosophy behind command-line tools, anyway. That way you can also control the pattern better, e.g. you can use ^2.6 for a better match.


Audio with cover art should be opened as audio instead of video

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Fixed tickets
fixes #323

Related issues/PRs
https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues/402#issuecomment-464319454

License
MIT

What's in this PR?

Edited the $ffmpeg->open() method to send Video if and only if at least one video stream is not marked as attatched_pic.
A sample audio file with cover which is created by adding a cover image to the already existing audio.mp3 using eye-d3
Functional tests to confirm the reported issue and verify the fix.

Why?
Fixes https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues/323
FFMmpeg::open() has 'media type' bug with MP3s (image metadata)
Fffmpeg source uses this function to detect if a video stream is actually a valid video stream or just a cover art.
https://github.com/FFmpeg/FFmpeg/blob/release/4.2/libavformat/movenc.c#L149-L154
I did not use the patch in https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues/402#issuecomment-464319454 because the codec_type can be either png or jpeg. If the codec_type is jpeg, that stream can be either a cover art or just a MotionJPEG video stream. Hence, it was not the right way to detect this.
BC Breaks/Deprecations
No.
There is a small chance that some code depends on this behavior to detect audio with cover images.
To Do

[x] Create tests to confirm the issue
[x] Fix till the new tests pass
[x] Run full test suite after making the change

Thank you for preparing this fix. However, I still think this might be a breaking change. @alexander-schranz how would you like to proceed here? File a new major version or don't you think it is a breaking change?

I would appreciate this fix as well.


feat: [M3-6785] - Firewall-NodeBalancer → Dev

Description 📝
This PR merges the Firewall-NodeBalancer feature branch into the develop branch.
Major Changes 🔄

Updated the following flows to allow users to attach/assign NodeBalancers or Linodes to Firewalls:

Create A Linode
Create A Firewall
Create A NodeBalancer

Updated the tabs for Linode, Firewall, and NodeBalancer.
Updated events landing page to include NodeBalancer details.

How to test 🧪
Prerequisites

Turn on the Firewall-Nodebalancer feature flag in dev tools
To go through the workflow, have atleast:

2 Linodes (without an assigned Firewall)

'Linode_1'
'Linode_2'

2 NodeBalancers (without an assigned Firewall)

'NodeBalancer_1'
'NodeBalancer_2'

Verification steps

Make sure the commit history looks accurate
Scan code and make sure its the right set of code, since the code has been reviewed before, we are more concerned that this PR encapsulates everything needed.
Run through the feature as a user, you can use the following workflow as a reference:

Throughout this workflow, ensure that:

There are no grammatical errors
The Linode, NodeBalancer and Firewall links bring you to the right page
The action is being added to the events: http://localhost:3000/events

If you do not have 2 unassigned Linodes and 2 unassigned NodeBalancers create them here: Linode, NodeBalancer
First, create a new Firewall (lets call this 'Firewall_1') without assigning any services: http://localhost:3000/firewalls/create
Navigate to Firewall_1's Linodes details page - /firewalls/[firewall_1_id]/linodes
While doing the below steps, make sure the number to the right of the tab headers (ex. Linode(#) and NodeBalancer(#)) get updated accordingly
Assign a Linode (lets call this 'Linode_1') to Firewall_1 - /firewalls/[firewall_1_id]/linodes/add
Ensure the Linode's table gets populated with the new Linode_1 - /firewalls/[firewall_1_id]/linodes
Assign another Linode (lets call this 'Linode_2') to Firewall_1 - /firewalls/[firewall_1_id]/linodes/add
Test the table's search bar functionality at /firewalls/[firewall_1_id]/linodes with the two Linodes
Unassign Linode_2 using the remove button in the table, and ensure the Linode gets properly unassigned.
Navigate to Firewall_1's NodeBalancer's details page - /firewalls/[firewall_1_id]/linodes
Assign a NodeBalancer_1 to Firewall_1 - /firewalls/[firewall_1_id]/nodebalancers/add
Ensure the NodeBalancer's table get populated with the new NodeBalancer_1 - /firewalls/[firewall_1_id]/nodebalancers
Ensure NodeBalancer_1's Details page gets updated with Firewall_1 - /nodebalancers/[nodebalancer_1_id]/networking and /nodebalancers/[nodebalancer_1_id]/settings
Navigate back to /firewalls/[firewall_1_id]/nodebalancers/add to assign another NodeBalancer, NodeBalancer_2, to Firewall_1
Test the NodeBalancer's table's search bar functionality at /firewalls/[firewall_1_id]/nodebalancers with the two assigned NodeBalancers.
Unassign NodeBalancer_2 using the remove button in the table, and ensure the NodeBalancer gets properly unassigned.
Create a new Firewall (lets call this 'Firewall_2') - http://localhost:3000/firewalls/create
Ensure you cannot assign the already assigned Linode_1 to Firewall_2 - /firewalls/[firewall_2_id]/linodes/add

There is an open PR that filters out already assigned services in the dropdowns; however, if this is not mergd by the time you do the review, atleast make sure there is an error that occurs if you do try to add an already assigned service

But also ensure that you can assign Linode_2 to Firewall_2, and make sure to assign it
Ensure you cannot assign the already assigned NodeBalancer_1 to Firewall_2 - /firewalls/[firewall_2_id]/nodebalancers/add
But also ensure that you can assign NodeBalancer_2 to Firewall_2, and make sure to assign it
Navigate back to the firewalls landing page - http://localhost:3000/firewalls
Ensure that there are two Firewalls in the table - 'Firewall_1' and 'Firewall_2'
Ensure that there is a 'Services' column
Ensure that each Firewall's Services' column has the corresponding Linode and NodeBalancer that was assigned to. that firewall: Firewall_1 --> Linode_1 and NodeBalancer_1, Firewall_2 --> Linode_2 and NodeBalancer_2
Ensure that swapping on and off the feature flag disables and enables all of the feature related ui found here

I went through most of the verification steps so far and the functionality is mostly good. One issue I encountered was trying to filter on the Linodes and NodeBalancer tabs when I have multiple of either. For example, I entered a string to search for among the assigned Linodes, and couldn't get the full list back when I cleared the search bar:
Screen.Recording.2023-11-30.at.4.48.30.PM.mov

Good catch, should be fixed now

really great job Tyler & Erik!
Went through the UI flow, things look good + matched mockups! Had a few comments below:

Accessiblity:

When using voiceover, the description of the NodeBalancer table in a Firewall's detail page for the Nodebalancer tab is 'List of Linodes attached to this firewall' - probably due to line 61 of FirewallDeviceTable.tsx
If needed, maybe we could also add some aria-labels to the Firewall Landing table

Functionality looks good 👍 I noticed a couple of minor things:
When creating a NodeBalancer and assigning a firewall in that flow, should "Firewall Assigned" show up in the summary section?

I think we need a period after "Learn more" here:
Create Firewall drawer

Really good catch, I broke it during a recent push when I was changing firewallID to FirewallId :(
couldnt figure out what the issue was until Banks jumped on a call and helped, Typescript didnt catch it for some reason 🤔

Dark mode color issue on the NodeBalancer's Settings page

Fixed the dark mode color issue.

sorry accidentally closed the pr, just reopened it

Looks like we may not be invalidating entity firewall queries upon deletion. Do we need to do this? If so, let me know if you need help with it!

Invalidated entity firewall queries upon deletion.


Add portmappings to ContainerCreateOptsBuilder

What did you implement:
While working on this PR I saw that there is a TODO for portmappings in ContainerCreateOptsBuilder, which I need. Thus, I implemented it.
How did you verify your change
I tested this within the PR.

The code I use is basically:
//...
.portmappings(
    imp.port_mappings
        .borrow()
        .to_owned()
        .to_typed_list_model::<model::PortMapping>()
        .into_iter()
        .map(|port_mapping| api::PortMapping {
            container_port: Some(port_mapping.container_port() as i64),
            host_ip: None,
            host_port: Some(port_mapping.host_port() as i64),
            protocol: Some(port_mapping.protocol().to_string()),
            range: None,
        }),
)
//...

The portmappings are accepted and are shown in cockpit.

What (if anything) would need to be called out in the CHANGELOG for the next release
Probably the titles of both commits would fit here.

Looks good to me! Thank you :)


using google life sciences backend raises MissingInputException

Snakemake version
5.20.1
Describe the bug
I see MissingInputException errors whenever attempting to run workflows via the Google Life Sciences Executor.
Logs
(snakemake) $ snakemake --google-lifesciences --default-remote-prefix snakemake-tutorial-data --use-conda --google-lifesciences-region us-west1
Building DAG of jobs...
MissingInputException in line 7 of Snakefile:
Missing input files for rule bwa_map:
snakemake-tutorial-data/genome.fa.amb
snakemake-tutorial-data/samples/A.fastq
snakemake-tutorial-data/genome.fa.pac
snakemake-tutorial-data/genome.fa.ann
snakemake-tutorial-data/genome.fa.bwt
snakemake-tutorial-data/genome.fa.sa

Example 1
Follow the steps in the Google Life Sciences tutorial. I did a few things differently from the tutorial:

I cloned this branch instead of master, since the pull request for the code used in the tutorial has not been approved yet.

git clone -b 'add/upload-google-storage-script' https://github.com/snakemake/snakemake-tutorial-data

I named my bucket snakemake-tutorial-data instead of snakemake-testing-data, since the snakemake-testing-data name was already taken.
I created the Snakefile and plot-quals.py script within the cloned directory (ie the parent of data/). The tutorial did not seem to explicitly specify where these should be created, but I couldn't really see any other reasonable alternatives.
I fixed the indentation on lines 11-14 of the tutorial's Snakefile.

I also tried moving the files within data/ to the same directory as the Snakefile. This did not fix the problem.
Example 2
Try the same steps as those in Example 1 but create the Snakefile from this code instead of the one in the Google Life Sciences Executor tutorial. I encounter a similar exception:
(snakemake) $ snakemake --google-lifesciences --default-remote-prefix snakemake-tutorial-data --use-conda --google-lifesciences-region us-west1
Building DAG of jobs...
MissingInputException in line 9 of Snakefile:
Missing input files for rule bwa_map:
snakemake-tutorial-data/data/samples/A.fastq
snakemake-tutorial-data/data/genome.fa

Additional context
Inspection of the storage bucket seems to indicate that running python upload_google_storage.py snakemake-testing-data data/ creates a data/ folder inside the storage bucket:

And this is what it looks like inside the data/ folder:

Example 3
Try wrapping the input in the Snakefile with GS.remote(). Here's the log output I got with the MissingInputException:
(snakemake) $ gsutil ls gs://snakemake-tutorial-data/data/*
gs://snakemake-tutorial-data/data/genome.fa
gs://snakemake-tutorial-data/data/genome.fa.amb
gs://snakemake-tutorial-data/data/genome.fa.ann
gs://snakemake-tutorial-data/data/genome.fa.bwt
gs://snakemake-tutorial-data/data/genome.fa.fai
gs://snakemake-tutorial-data/data/genome.fa.pac
gs://snakemake-tutorial-data/data/genome.fa.sa

gs://snakemake-tutorial-data/data/samples/:
gs://snakemake-tutorial-data/data/samples/A.fastq
gs://snakemake-tutorial-data/data/samples/B.fastq
gs://snakemake-tutorial-data/data/samples/C.fastq
(snakemake) $ snakemake --google-lifesciences --default-remote-prefix snakemake-tutorial-data --use-conda --google-lifesciences-region us-west1
Building DAG of jobs...
MissingInputException in line 10 of Snakefile:
Missing input files for rule bwa_map:
snakemake-tutorial-data/data/genome.fa.pac
snakemake-tutorial-data/data/genome.fa.ann
snakemake-tutorial-data/data/genome.fa.bwt
snakemake-tutorial-data/data/samples/A.fastq
snakemake-tutorial-data/data/genome.fa.sa
snakemake-tutorial-data/data/genome.fa.amb

And here's the new Snakefile:
from snakemake.remote.GS import RemoteProvider as GSRemoteProvider
GS = GSRemoteProvider()

SAMPLES = ["A", "B"]

rule all:
    input:
        "plots/quals.svg"

rule bwa_map:
    input:
        fastq=GS.remote("snakemake-tutorial-data/data/samples/{sample}.fastq"),
        idx=[GS.remote("snakemake-tutorial-data/data/"+f) for f in multiext("genome.fa", ".amb", ".ann", ".bwt", ".pac", ".sa")]
    conda:
        "environment.yml"
    output:
        "mapped_reads/{sample}.bam"
    params:
        idx=lambda w, input: os.path.splitext(input.idx[0])[0]
    shell:
        "bwa mem {params.idx} {input.fastq} | samtools view -Sb - > {output}"

rule samtools_sort:
    input:
        "mapped_reads/{sample}.bam"
    output:
        "sorted_reads/{sample}.bam"
    conda:
        "environment.yml"
    shell:
        "samtools sort -T sorted_reads/{wildcards.sample} "
        "-O bam {input} > {output}"

rule samtools_index:
    input:
        "sorted_reads/{sample}.bam"
    output:
        "sorted_reads/{sample}.bam.bai"
    conda:
        "environment.yml"
    shell:
        "samtools index {input}"

rule bcftools_call:
    input:
        fa=GS.remote("snakemake-tutorial-data/data/genome.fa"),
        bam=expand("sorted_reads/{sample}.bam", sample=SAMPLES),
        bai=expand("sorted_reads/{sample}.bam.bai", sample=SAMPLES)
    output:
        "calls/all.vcf"
    conda:
        "environment.yml"
    shell:
        "samtools mpileup -g -f {input.fa} {input.bam} | "
        "bcftools call -mv - > {output}"

rule plot_quals:
    input:
        "calls/all.vcf"
    output:
        "plots/quals.svg"
    conda:
        "environment.yml"
    script:
        "plot-quals.py"

Hi,
I am facing the exact same issue and I noticed something strange. Apparently, if you remove all the relative path from the output -going from "mapped_reads/{sample}.bam" to "{sample}.bam"- the workflow runs fine. So it's not a mere problem of communicating with the bucket or permissions.

Thanks for reporting this @emattei and @aryam7! It looks a lot like https://hub.docker.com/r/snakemake/snakemake/tags and we think there is an issue with raising the error for output (which should not happen!) I'm going to start to debug this today, and hopefully will figure something out. Thanks for your detailed steps to reproduce!

hey guys! So I think I have the issue figured out, and I'll walk through my debugging here to help. The PR was fairly simple, you can see the fix in https://github.com/snakemake/snakemake/pull/548 (pending random Windows / conda errors). First @aryam7 there was a bug in the upload script that added an extra data to the path - that shouldn't have happened. so If you did:
python upload_google_storage.py snakemake-testing-data data

It should have uploaded data/ on the local machine to the storage root. This should have uploaded to a subfolder called data.
python upload_google_storage.py snakemake-testing-data/data data

That should be fixed now in the branch you cloned. But regardless, the subfolder of data should have worked! So I stepped through the pipeline you gave to reproduce. Note that you shouldn't need to hard code the storage prefix into the path - that would defeat the purpose of being able to specify it on the command line! So I used the regular Snakefile from the tutorial here https://snakemake.readthedocs.io/en/v5.20.1/executor_tutorial/google_lifesciences.html.
Bug Hypothesis!
The bug is fairly simple, and related to #511 but not an issue with the list_blobs method. The cache for files (local and remote) you can view like a dictionary. In the case of a remote path, we index by the bucket root so that we know we've indexed the bucket (or not). So when we were running list_blobs() for a bucket subfolder, even though we might only be indexing a path like data/plots (possibly an output file) in fact we were indexing for the root bucket name, regardless of the subfolder, like this:
cache.has_inventory.add(self.bucket_name)

And then on a second time around, perhaps when we are checking another file in data/reads, we see that the bucket root name is in the cache and skip over it. What we actually wanted to do in that function is index by the subfolder we've searched, logically:
cache.has_inventory.add("%s/%s" %(self.bucket_name, subfolder))

The reason that this spits out a MissingInputException is because the iocache wrapper is returning an incorrect result based on this bug. Let's walk through an example of a file that exists in the bucket, but is returning False that it doesn't exist.
file
'snakemake-testing-data/data/samples/A.fastq'

We can see that it is remote, in a Google Storage bucket
file.is_remote
<snakemake.remote.GS.RemoteObject at 0x7ffafc0d95b0>

We can also directly interact with that object to verify it exists (this is a Google Storage Python client function)
file.is_remote.exists()
True

But for some reason, when we use the file.exists_remote wrapper, which is triggered by the exists function (the one returning False) it's returning False.
if file.is_remote:
    print(file.exists_remote)
False

But this doesn't make sense, because if we grab the code in the exists_remote function and run it - it should return True! We skip the first if condition and return self.remote_object.exists() (which is True!)
    @property
    @iocache
    def exists_remote(self):
        if not self.is_remote:
            return False
        return self.remote_object.exists()

That's what led me to the iocache wrapper.  Let's walk through that. It looks like we normalize the file name
normalized
'snakemake-testing-data/data/genome.fa.amb'

and then check if it's in the cache. This returns True:
normalized in cache
True

Logically we could then return it. But when we index normalized in the cache, it's actually not there, and it returns False:
cache[normalized]
False

Derp, this shouldn't happen! The reason the first returns true is because the remote bucket is in our inventory (this function checks for the root bucket), e.g., snakemake-testing-data
cache.cache.in_inventory(normalized)
True

And although the bucket name is indexed, because of the inventory bug, we haven't actually cached the file in it (otherwise it would return something other than False). What should happen here is one of two things:

To see that normalized isn't in the cache, and to return the function call, which is the exists_remote (that returns True)

func
<function snakemake.io._IOFile.exists_remote(self)>
v = func(self, *args, **kwargs)
cache[normalized] = v
v
True

OR that normalized is in the cache, and we return "True" from the cache instead of False. But neither of those things happen - we see that normalized is in the cache (based on bucket name) but isn't actually there. Because we never cached it. Because we used the wrong index.
The reason we didn't catch in the testing pipeline is because we do everything from the root bucket. This is also why if you change the index to the root bucket, it will actually cache everything (even though this isn't a good strategy to take generally because the user might not want us to index beyond the subfolder they are using, or in the case of public Google buckets, it would be hugely overkill).
It looks like we haven't released a container with the crc32c fix, so although I'm able to skip over the MissingInputException, I can't fully test the updated pipeline with a subfolder. But anyway, I think at least we've made good progress on the issue here! Johannes is in Germany (later there now) so he will likely be able to review/comment sometime this week. Thanks again for your reports!

@vsoch thank you very much for taking the time and describe the error and the fix.
I tried the fix and indeed the workflow starts. But, after the docker is downloaded and the data copied, the error persists.
This is the output of gcloud beta lifesciences operations describe
- containerStopped:
      actionId: 1
      exitStatus: 1
      stderr: |
        --2020-08-10 19:21:04--  https://gist.githubusercontent.com/vsoch/84886ef6469bedeeb9a79a4eb7aec0d1/raw/181499f8f17163dcb2f89822079938cbfbd258cc/download.py
        Resolving gist.githubusercontent.com (gist.githubusercontent.com)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
        Connecting to gist.githubusercontent.com (gist.githubusercontent.com)|<IP_ADDRESS>|:443... connected.
        HTTP request sent, awaiting response... 200 OK
        Length: 1246 (1.2K) [text/plain]
        Saving to: ‘/download.py’

             0K .                                                     100% 54.1M=0s

        2020-08-10 19:21:04 (54.1 MB/s) - ‘/download.py’ saved [1246/1246]

        Building DAG of jobs...
        MissingInputException in line 7 of /workdir/Snakefile:
        Missing input files for rule bwa_map:
        snakemake/data/genome.fa.sa
        snakemake/data/genome.fa.ann
        snakemake/data/genome.fa.pac
        snakemake/data/genome.fa.amb
        snakemake/data/genome.fa.bwt
    description: |-
      Stopped running "snakejob-bwa_map-4": exit status 1: --2020-08-10 19:21:04--  https://gist.githubusercontent.com/vsoch/84886ef6469bedeeb9a79a4eb7aec0d1/raw/181499f8f17163dcb2f89822079938cbfbd258cc/download.py
      Resolving gist.githubusercontent.com (gist.githubusercontent.com)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
      Connecting to gist.githubusercontent.com (gist.githubusercontent.com)|<IP_ADDRESS>|:443... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 1246 (1.2K) [text/plain]
      Saving to: ‘/download.py’

           0K .                                                     100% 54.1M=0s

      2020-08-10 19:21:04 (54.1 MB/s) - ‘/download.py’ saved [1246/1246]

      Building DAG of jobs...
      MissingInputException in line 7 of /workdir/Snakefile:
      Missing input files for rule bwa_map:
      snakemake/data/genome.fa.sa
      snakemake/data/genome.fa.ann
      snakemake/data/genome.fa.pac
      snakemake/data/genome.fa.amb
      snakemake/data/genome.fa.bwt
    timestamp: '2020-08-10T19:21:12.709621981Z'

So, the MissingInputException remain even if the data is right there

@emattei the container that is being used with snakemake would still have this bug.

@vsoch oops, yes I forgot about that...

haha totally no worries - I do that too! :) What you could try (I haven't done this before but don't see why it wouldn't work) is to build and push your own container from the branch you cloned with the fix:
docker build -t <myusername>/snakemake:test .
docker push <myusername>/snakemake:test

And then set that as the --container argument:
snakemake ... --container <myusername>/snakemake:test

If getting this running is super urgent for you! It would also greatly help with testing of course!

@vsoch sorry it took me a little bit of time but I did it and it worked!

yay!! You just made my day!! :D

well, thank you for fixing it!

@vsoch and @emattei Thank you for all of your work! And thank you for the fascinating explanation of the bug, @vsoch!

I'm closing this because it seems like everything is resolved. Feel free to reopen, if not.
I ran into a couple other problems with the tutorial, but they were mostly small things (ie indentation on some lines + some other changes I had to make to the Snakefile).

Thanks @aryam7 ! Definitely those indentation issues are bugs - I opened a PR yesterday to fix but it hasn't been merged yet, but hopefully soon: https://github.com/snakemake/snakemake/pull/553.


Bump flipper deps to 0.91 to support XCode 12.5 out of the box

Summary
This bumps the flipper dependencies to 0.91.
Fresco deps are not in mavenCentral jet, so picked those from bintray, but pinged the team and they'll follow up on it. See also: https://github.com/facebook/fresco/issues/2603
This primarily bumps to the latest pods we have everywhere, which solves several build issues, like reported in https://github.com/facebook/react-native/issues/31480
After this change it should no longer be needed to pass custom version overrides to use_flipper, as the defaults will be up to date.
In the template project, I changed the version rangers to exact numbers, so that results of react-native init are more consistent / predictable over time, as suggested in the discord channel by Brent
In the long term we are investigating whether we can remove most of the transitive deps by not using RSocket, which is a bigger project plan that should help reduce build issues and times, especially on iOS.
cc @priteshrnandgaonkar  @passy @kelset
Changelog
[general][changed] - Update Flipper to 0.91.1, fixed iOS build support for i386, use_flipper!() will no longer need custom overrides to build with XCode 12.5
Test Plan
N.B. Locally tested in XCode 12.4 only, but bumped versions have been confirmed to work on 12.5 before by others

React Native CI
Flipper CI with same versions of deps: https://github.com/facebook/flipper/actions/runs/863607686
Was able to connect from both Android and iOS to Flipper. Couldn't really test further due to a bundling error I didn't understand, suggestions welcome

LGTM - we should probably cherry pick it in the 0.65 branch too

Hey! We've released Fresco 2.5.0 tot Maven Central, so you should be able to upgrade now.


Interface mockups

I've created the following mockups for the Massa app. If this is ok, I can implement it using react native and make a PR. A working demo is available here
I already have a version with splash screen implemented available here, should I create a PR for this only?
Screenshots
Splash Screen

Login

Downloads

Download Details

About Screen

@padamchopra Well done.


Some highlights broken after dc7c6dc0a7fcba693217f907f8cd0a07e4b09448

After this commit:
HEAD is now at dc7c6dc fix: clear highlights before applying theme
Some theming has broken across plugins.

Example is with Glance.nvim, but my lualine changed as well.

Closing according to 602d38a48eaada5d507ea3f0ea6cef12f0a6026d. If you still have issues, please continue the discussion or reopen this issue if needed. Thank you.


UI 2.0: Authentication (session, cookies, etc) to be able to hit both the API and UI

This should be possible using cookies and session-based authentication. We may need to implement some additional API endpoints to check for session validity, but perhaps not.
We already have DRF configured for rest_framework.authentication.SessionAuthentication, so this shouldn't be too bad.
Some references:

https://testdriven.io/blog/django-spa-auth/
https://www.django-rest-framework.org/api-guide/authentication/#sessionauthentication

May be able to use an implementation similar to this

Closed via #3356


Spelling change from contact to contacting

Hello!  Your theme is great.  I made a change in the contact form to say "Thank you for contacting us" instead of "Thank you for contact us".
Thanks again for such an awesome theme.

Hi @zo0o0ot!
Thank you for your contribution!


Price history inconsistencies

Depending on whether my wallet is connected or not, the item activity on the NFT details page is different.
See discussion in discord: https://discord.com/channels/404673842007506945/817476734856724521/1075558188298031104
Also when multiple NFTs are sold in a single transaction, we show the total price of the bundle.
That's why it shows 26 ETH (total amount) as price Item Activity section for this NFT:

https://marketplace.pudgypenguins.com/marketplace/pudgypenguins/462
tx: https://etherscan.io/tx/0xb6f225d6afadbb765f6144cfd5c8cf4a0c9cdb3243555ee2fe744f199aa86e8f
It is confusing to the user. Maybe we shouldn't show a price at all?

oops. wrong repo!


Update to OGC API - Features - Parte 1: Core v1.0.0 stable version.

Currently, STAC references the OAF draft 2 document (http://docs.opengeospatial.org/is/17-069r3/17-069r2.html) and also inherited the API description from there, but there's now a stable version (http://docs.opengeospatial.org/is/17-069r3/17-069r3.html). We need to update STAC documentation accordingly and update also the OpenAPI file.

Should we check what has changed and align before the sprint?


Memcached storage provider.

Yes, I found it interesting too, but the question is, what the application can do with the boolean besides logging or trying again?

Real world scenario, the database goes down... the actors keep running.... the database goes up again, hum... I guess that only actors that were deactivated with a failed writestate will loss data. Can we avoid somehow postpone actors deactivation when there were writestate failures?

Yes, but that turns one problem into another: memory.

Ok, so make it a choice. The system by default keeps the actor activated until a valid writestate. And the user can add a special provider that can choose in what situations the actors can be deactivated despite the writestate success. Another approach would be to configure a max memory limit for this situation, where it will deactivate the oldest in this situation when a memory limit is reached.

There was a reason not to accept the provider's data object into the actor.
In the future we'd like to be able to manage the actor state.
That's something that for instance Orleans does.
In another life and company I implemented a transactional system that also monitored all access to the application objects. So this would be a simple thing to do. I'm not sure if it's a good thing, though. Now I come to think of this sort of monitoring as an early optimization bound to be more expensive than just cloning the thing.
So while we decide if the object will or will not be updated in place.
@johnou have you looked into libraries like Dozer or kryo they make it possible to clone or copy objects.
What would allow the in place replacement of object would be something like:
Task<Boolean> readState(ActorReference<?> reference, Object state) {
    Object o = readFromSomeDatabase(...);
    mapper.copy(o, state);
    return done();
}

I understand your concern with asynchronous reads (where the application neglects to await(readState()); )
However if the application chooses to use async reads, it will be in trouble with the atomic state as well.
Because it will still be possible that two subsequent calls to state() will return different objects.
I agree that that is better than the object fields changing mysteriously during the same call.
So as you can see this discussion is not over yet.
And I'd really appreciate to hear your arguments.

@DanielSperry thanks for such a detailed insight of what you might have planned for the future. To be honest I hadn't thought as far as monitoring application objects and I was not happy with changing the API of the storage provider so I will go ahead and revert those changes.
Dozer looks reasonable in terms of updating the actor state object so I will update the Memcached provider to use that.
I also updated the test to just loop all known keys, inefficient sure, but not dangerous.

@johnou I've added two utility methods for restoring references:  https://github.com/electronicarts/orbit/commit/18c036a62347e7434d74b676d4e489af99f49676

Merged, thanks Johno.

:+1:


Removed resolved issue

Fixes: https://github.com/cockroachdb/docs/issues/5853

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/89e4c243bba1aa293ef4708ad167254190f2243d/
Edited pages:

v19.2/known-limitations.md

Hey @dbist thanks for this PR!  LGTM

@rmloveland thanks for review, do you need me to merge this or is it someone else?

build is green, go for it!


Fix "Contribute on GitHub" button

📝Changed routes:

/[slug]

(view full size)

Commit 919a8a0af5318ab097ce1ed40f8958c0bd71ffe6 (https://toolbox-8px3w5qw8.hackclub.dev).


[Snyk] Upgrade html-snapshots from 3.9.0 to 3.10.0

This PR was automatically created by Snyk using the credentials of a real user.![snyk-top-banner](https://github.com/andygongea/OWASP-Benchmark/assets/818805/c518c423-16fe-447e-b67f-ad5a49b5d123)
Snyk has created this PR to upgrade html-snapshots from 3.9.0 to 3.10.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.

The recommended version was released on 3 days ago.

Release notes

Package name: html-snapshots

3.10.0 -<EMAIL_ADDRESS>

3.9.0 -<EMAIL_ADDRESS>

    from html-snapshots GitHub release notes

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:

🧐 View latest project report
📜 Customise PR templates
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

coverage: 99.245%. remained the same
when pulling 1f2c657d333458caedbbb68e6421d016d37c4d6d on snyk-upgrade-a1ae957d3e230705acd08d91c68fb98c
into 45ed88da54bd7d0411620e1287c2b5e216a070e6 on master.


Large volume of text in Regional Parameters page

Summary

The Regional Parameters page has a large volume of text and needs to be reduced.
https://www.thethingsnetwork.org/docs/lorawan/regional-parameters/
Why do we need this ?

To find key parameters for each region easily.
What is already there? What do you see now?

The regional parameters that are required for The Things Certification.
What is missing? What do you want to see?

...
How do you propose to document this?

Remove the text that is not required for the exam.
Can you do this yourself and submit a Pull Request?

Yes, @nejraselimovic please assign this to me.

This is the wrong repository I think. The page you are referring to in on the TTN docs.

@KrishnaIyer Oops! Thanks for pointing that out. I will close this issue now.


Allow ExposeEndpoint protocol to be other than TCP

This change keeps the current default behaviour of assuming the Service is exposing TCP services, but adds a Protocol field to endpoint.Data to allow for different protocols.
Specifically, this is to allow a Service to be exposed for an Ironic TFTP service (UDP, port 69)

Actually, its not strictly an endpoint, so I should create the Service directly