Squaring-Error

"Square an area" should align the corners of an area / building,
to beautify it to a more right-angled shape.
But sometimes this does not work right, and ends up with an unuseble shape,
e.g. one corner is lost (or 2 points moved to the same coordinates).
When mapping small villages, there are quite a lot of old buildings with odd shapes.
This is where I encounter the buggy behaviour of "square an area" more frequently,
but it can happen with simple 4-cornerd houses too.
(I just didn't bother to write a bugreport yet)
Here some examples from the village Rossdorf/Zeilhard :

Way/316791604 - simple house
Way/316801542 - 8-corner house gets distorted
Way/316794583 - another big building with "indent".
Way/316873578 - some kind of storage building
Way/316794582 - Farm-building
Way/320705754

Find all those places I marked with notes: http://overpass-turbo.eu/s/6tN
Note: since the report, there has been an automatic mass-edit,
that might have corrected the data that leads to the error,
see http://www.openstreetmap.org/changeset/27512311

I'm assuming this has been fixed @bhousel ?

I'm assuming this has been fixed @bhousel ?

I don't think anything has changed on this.


Automate Order Explorer Feat

Fixes https://github.com/foundryvtt/pf2e/issues/5586.

We'll need to rewrite the orders as well to not grant their other benefits like granting a skill training / etc. Also we should do the first level feat choice, which will just have to be a manually built list since we won't be able to query that one (and don't want to add more queries right now anyways).


Update The Nav-Bar Color And Hover

Issue Title: Update NavBar Background Color And Hover Animation
Issue no: #53
Close: #53
Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented on my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy-to-understand README.md
[x] Update The Back Ground Color
[x] Update The Hover Animation

Pull Request Description:
I Have updated the background color And Nav Bar Item Hover Animation. The WebSite According To The Project And Tested For Different Devices As It Works Well.
Changes Made:

Provided explanations for each section.
Detailed Description:
Update The Background Color
Update The Nav Bar Item Hover Animation

Videos
https://github.com/Rakesh9100/CalcDiverse/assets/129049677/09ad92ab-2978-48a3-b4f1-b0808fd3fcef

Merged!! 🎉 @Kapileswar-Moharana


raspberry bitcoin docker

Wouldn't it be better to dockerize the bitcoin lightning tutorial?
It'd be just a matter of mounting the external drive correctly and setting up passwords and private keys. I see that you require to add networking information before the first boot. I'm doing an SD file tree editor for raspberry pi that automates this entire part and installs things (like docker) at first run: https://github.com/lucaszanella/raspberry_script_setup
I'm just waiting for a pruned mode to be launched, then I'll certainly make a tutorial based on this one, but it'd be much easier if dockerized

Hi Lucas, yes a docker image probably would be most efficient way for spinning up new nodes. This is not my goal however, as it involves trusting someone else and does not provide the same learning experience as doing it myself.
Thanks for the link to the Raspi Script Setup. Interesting, will check it out!
If you would like to dockerize my setup: feel free. Pleaae keep me posted.

I didn't understand the part about trusting someone else. You mean trusting the docker base images are secure, or trusting by doing docker run without reviewing?
In the second case, I usually package everything in my Dockerfile, no dependencies on other files, so it looks like a regular bash script that's easy to review. I even add SHA verifications when I use wget inside the dockerfile.
In the first case, I think the most used images like ubuntu can be audited now.
But I agree that lazy users would simply run the dockerfile without any reviewing.
Anyways, I'm going to dockerize everything once pruning mode becomes available :)

Personally - I enjoyed this as a learning experience. Glad Stadicus explained every step, rather than just saying 'download and run this script'.
Both approaches have their place.

Agree. This is more the "learning and getting my hands dirty" approach, while the docker approach is obviously much more efficient. Different goals, different guides.


No noarch

Maybe this will fix the segfault?

any theory as to why noarch would be related to segfaults?

I'm more worried by the python constraint than the noarch, but no. I haven't been able to reproduce the error on CF (or my local) so this is a bit of a shot in the dark (although I think this recipe is one of the few to actually restrict the python version with noarch so :man_shrugging: ).

OK, let's retry it.

For completeness - it was built successfully: https://anaconda.org/lightsource2-tag/xpdacq/0.8.2/download/linux-64/xpdacq-0.8.2-py36_0.tar.bz2.


GPLv3 License issue

Hi, we’re using this library in one of our projects (thanks for sharing!) and while I was doing some research into licenses I found the following in your code:
https://github.com/manuelbieh/geolib/blob/6ba1b60c22d471e87b026698555212072cd587d9/src/getRhumbLineBearing.ts#L13
It is my understanding that ‘taking’ GPLv3 source is ‘infectious’ and spreads to those that re-use the source. Perhaps the key here is ‘based on’, but IANAL and so I’m wondering if you have more insight into this?

Can you specify / elaborate on what exactly the issue is?

Can you specify / elaborate on what exactly the issue is?

Yeah, sorry about that, I accidentally hit the wrong key combo and submitted too early 🙈

I think you’re talking about the getRhumbLineBearing function?

IANAL but as I understand, this shouldn’t be a licence violation as the original code is written in PHP and this library merely uses the same algorithm implementation but is rewritten in TypeScript/JavaScript.

I am pretty sure that porting, rather than a cleanroom implementation, still leaves the GPL license of the original code in place. E.g. https://stackoverflow.com/questions/3256967/what-are-the-copyright-and-licensing-issues-of-porting-code

@alloy The link you posted seems broken

Oh, weird, it still works for me. I got there from the first link of this comment https://softwareengineering.stackexchange.com/a/58340

The formula is pretty surely public domain. That's common knowledge and pure math. The function itself contains one condition and is otherwise completely based on a mathematical formula. I'm not a lawyer either but I am 99% sure I could just remove the link to the source and that would be totally fine and legal.
Put simply, it's not very much different to a function
function add(a, b) { return a + b; } which could not be patented or put under a particular license in any form.

Gotcha, that makes sense to me 👍

If this has been resolved, I would suggest closing this issue. Seeing an open issue with the title "license issue" is bound to turn away some people considering using this library

Good point. I will change the comment to clarify that there's not really a license issue.


Deprecated error on using Yaml:parse with filename

PHP Deprecated:  The ability to pass file names to the Symfony\Component\Yaml\Yaml::parse method is deprecated since version 2.2 and will be removed in 3.0. Pass the YAML contents of the file instead.

Its Configurator class line 165

Can you send a PR updating this ?

see #208


Build fail on android

When run app in android this bug happen;

Where:
Build file '/Users/khayyam/Desktop/cloud-storage/node_modules/react-native-raw/android/build.gradle' line: 114

What went wrong:

A problem occurred evaluating project ':react-native-raw'.

Expected directory '/Users/khayyam/Desktop/cloud-storage/node_modules/react-native/android' to contain exactly one file, however, it contains more than one file.

Hi @khayym, this issue happens in RN0.69+ version so support is added for that in 6300844.  you can use react-native-raw v0.7 for RN0.69 and above.


Should this charm be archived?

it looks like the charm isn't actively used by the community.
it contains a library that is used heavily (traefik_route_k8s but in combination with traefik-k8s-operator so it might be a better place to own this library - ref canonical/traefik-k8s-operator#379 )

It looks like we should consider archiving this charm and moving traefik_route_k8s library to traefik-k8s-operator.

On it.


RoundedBitmapDisplayer didn't maintain the aspect ration

I have used RoundedBitmapDisplayer(15) in DisplayImageOptions but the aspect ratio of image is not maintained. Images is stretched.

Did you find a solution to the issue?

Fixed


Add config for Heroku Review apps

This will help with 2i from content designers when we make changes.

 Add bank holidays


RDK-31068: HDMI Output HDCP Status Change Notification XiOne

Reason for change:
HDMI Output HDCP Status Change Notification XiOne
Thunder changes.
Test Procedure: None
Risks: Low
Change-Id: I02352149e1793717125c0a7039fa4e00e93a6fbe
Signed-off-by:Anooj Cheriyan<EMAIL_ADDRESS>

old one

old one


pip install modin[all] should choose what to install based on the OS

When a Windows user runs pip install modin[all] it will not work because Ray does not have any Windows releases. We should still support pip install modin[all] in Windows.

This requires uploading wheels based on the OS. setup.py will have to be updated to handle this.


Fix mypy typing issues

Numpy 2.0 released and can cause some potential issues, so restrict to 1.x.y for now.

docx.Document is a constructor function, docx.document.Document is the type itself
Some unused weirdness in get_possible_radios popped up: the function is untested, so I fixed the typing issues

If this passes, I'll merge and then merge some fixes into pdf_content_extract and #134.

Mypy looks good now, nice! Does the build failure need a look?

Does the build failure need a look?

See https://github.com/SuffolkLITLab/FormFyxer/issues/135, I'm cooking up a fix in ALActions that I think should solve it and not mess with anything else.


Could not connect to iTunes store.

Today I started to constantly receive the "Could not connect to iTunes store." error.
The app is already published. The published app doesnot include in app purchases. Now I am writing the new version the in app subscriptions. Trying this on the device as well as in the simulator.
loadProducts method works well.
restorePurchases(( error, response ):
error - Could not connect to iTunes store.
response - restore_failed
When tried a week ago with the first not published at that time version - there was no such an error.

After multiple reloads iPhone asked me to enter itunes password. When I did the error stopped to appear. But previously such a dialog did not open up. Is that an error or what?

I am having a similar issue and I am always returned restore_failed after restoring purchases

@akaiworld A PR was merged to fix this issue. It sounds similar. Have you tried the latest version?

@ryancoughlin I tried the latest version, upon purchase I got  "Cannot connect to iTunes Store" , with an undefined response.

+1

Any update on this, have app in production and upgrades are failing?

@Asleepace what do you mean by upgrades? Upgrading in app subscriptions or upgrading your app and getting rejected?
I don't get this issue in production only in sim/dev/testflight.

@Asleepace check https://github.com/chirag04/react-native-in-app-utils/issues/122

@superandrew213 thanks, it seems that it works when on app store, but not with the release build of my app.

@Asleepace thanks for letting me know! I had a feeling that these errors wouldn't show on App Store downloads.


nixos/clamav-unofficial-sigs: init at 7.2

Motivation for this change
Initialize package and module for https://github.com/extremeshok/clamav-unofficial-sigs
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

cc @ajs124

ping @SlothOfAnarchy

ping @SlothOfAnarchy

Closing due to inactivity from author.


Unit Test fails on master

See build log https://circleci.com/gh/atlasmap/atlasmap/72 , can be reproduced locally, too.
LengthValidatorTest
Running io.atlasmap.validators.StringPatternValidatorTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.118 sec - in io.atlasmap.validators.StringPatternValidatorTest

Results :

Failed tests:
  AtlasUtilTest.testFindClassesForPackage:116 expected:<4> but was:<0>

Tests run: 426, Failures: 1, Errors: 0, Skipped: 2

Builds passing CI


Add Description and Outcome to source/courses/comp266.rst

There is no description or outcome text for the course listing of COMP 266.

This issue has been resolved.


Test PR for CI

This also fails but for a different reason than https://github.com/open-navigation/opennav_coverage/pull/43, it fails because of tests

This is a known issue that I ran out of time in my contract to fully solve. It only appears in the GitHub Actions. The other issues is compiling, that's a bigger deal :wink:


Remove the not yet implemented note for conditions

Codecov Report

Merging #1175 (6356e64) into main (37a18f7) will increase coverage by 0.48%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1175      +/-   ##
==========================================
+ Coverage   94.31%   94.79%   +0.48%
==========================================
  Files         331      327       -4
  Lines       16326    16167     -159
  Branches       14        0      -14
==========================================
- Hits        15398    15326      -72
+ Misses        928      841      -87

Flag
Coverage Δ

dotnet
94.79% <ø> (-0.09%)
:arrow_down:

typescript
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...cep.Core.UnitTests/FileSystem/FileResolverTests.cs
79.31% <0.00%> (-20.69%)
:arrow_down:

.../Bicep.Core.UnitTests/Assertions/BaselineHelper.cs
63.63% <0.00%> (-15.91%)
:arrow_down:

src/Bicep.Core/FileSystem/PathHelper.cs
96.15% <0.00%> (-3.85%)
:arrow_down:

src/Bicep.Core.UnitTests/Utils/CompilerFlags.cs
33.33% <0.00%> (ø)

...Bicep.Core.UnitTests/FileSystem/PathHelperTests.cs
100.00% <0.00%> (ø)

src/vscode-bicep/src/extension.ts

src/vscode-bicep/src/utils/logger.ts

src/vscode-bicep/src/language/client.ts

src/vscode-bicep/src/utils/telemetry.ts


permission-common: accept configApi in PermissionClient constructor

Hey, I just made a Pull Request!
Moving the responsibility of pulling the right configuration key inside the PermissionClient ensures that the right configuration key is used to control whether the permissions system is enabled.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

@OrkoHunter realised that the configuration should probably be explicitly optional and implicitly disabled, PTAL!

@mtlewis Yeah I had a thought about that. Some plugins prefer to just break if they don't have the configs explicitly disabled, but it makes sense to be as implicit and silent here as possible! :)


Is Forgejs still maintained?

Description of the problem
Hello, I couldn't find any information on the future of this project. Is it still alive?

No, GoPro fired all the people who were working on the project. Sorry about that.

Is anybody continuing this project?

Yes, some people have forked the repo and maintained it for their own projects. There is a great chance that the code will be published any time soon.

Dear Rafarel, thank you for this good news. Is there anything we could do to encourage an update? I am especially interested in the compatibility with WebXR and Oculus. Many thanks in advance for any information.

Dear Rafarel, thank you for this good news. Is there anything we could do to encourage an update? I am especially interested in the compatibility with WebXR and Oculus. Many thanks in advance for any information.

Hi @uwe22 and @kalitine  , I am part of the team quoted by @Rafarel. We are working on this project and will publish a maintained version in coming months hopefullly. What are your expectation about a possible fork of ForgeJS ?

Hi @uwe22 and @kalitine  , I am part of the team quoted by @Rafarel. We are working on this project and will publish a maintained version in coming months hopefullly. What are your expectation about a possible fork of ForgeJS ?

Dear sgamet-vrtice!
thank you for your kind update.
ForgeJS is a very great tool. I used it for teaching
interactive VR media and I made some content.
I would like to move to content creation for immersive VR or the WEBXR browser.
In the short term, I would be extremely happy if I could display the
existing content in my VR Helmet Oculus Quest in immersive view with the built in browser.
So far it is only possible to view the content in a large browser. I also added this info to github
https://lab3d.kw.ac.kr/vr/ https://lab3d.kw.ac.kr/vr/
In the long term I am looking for a solution where I could merge or find some bridges between ForgeJS, Blender, Armory3D and
Mozilla Hubs. I would also like to integrate this inside the E-learning software H5P which I use for my classes.
If there is anything I can do for helping or cheering you up, please let me know!
Very happy new year!

On Jan 18, 2021, at 22:49, sgamet-vrtice<EMAIL_ADDRESS>wrote:
Hi @uwe22 https://github.com/uwe22 and @kalitine https://github.com/kalitine , I am part of the team quoted by @Rafarel https://github.com/Rafarel. We are working on this project and will publish a maintained version in coming months hopefullly. What are your expectation about a possible fork of ForgeJS ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/gopro/forgejs/issues/174#issuecomment-762262700, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC23JSOHUN3F7EY3FNP6TTTS2Q377ANCNFSM4JALWTBQ.

Dear sgamet-vrtice!
thank you for your kind update.
ForgeJS is a very great tool. I used it for teaching
interactive VR media and I made some content.
I would like to move to content creation for immersive VR or the WEBXR browser.
In the short term, I would be extremely happy if I could display the
existing content in my VR Helmet Oculus Quest in immersive view with the built in browser.
So far it is only possible to view the content in a large browser. I also added this info to github
https://lab3d.kw.ac.kr/vr/ https://lab3d.kw.ac.kr/vr/
In the long term I am looking for a solution where I could merge or find some bridges between ForgeJS, Blender, Armory3D and
Mozilla Hubs. I would also like to integrate this inside the E-learning software H5P which I use for my classes.
If there is anything I can do for helping or cheering you up, please let me know!
Very happy new year!

On Jan 18, 2021, at 22:49, sgamet-vrtice<EMAIL_ADDRESS>wrote:
Hi @uwe22 https://github.com/uwe22 and @kalitine https://github.com/kalitine , I am part of the team quoted by @Rafarel https://github.com/Rafarel. We are working on this project and will publish a maintained version in coming months hopefullly. What are your expectation about a possible fork of ForgeJS ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/gopro/forgejs/issues/174#issuecomment-762262700, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC23JSOHUN3F7EY3FNP6TTTS2Q377ANCNFSM4JALWTBQ.

Hi @uwe22 ,
For now we are not focusing on HMD consumption. I hope it will come.
BTW I'll let you know when we'll drop an update :)
Cheers

Please cheer up for this great tool!

I hope everything goes well. Please share if there is any progress.

Hello @uwe22 ,
sorry I did not answer when you post your last message. We're still working on ForgeJS, but we're not focusing on HMD for the moment. We've got a lot to do before adressing this part.

It is super nice to read that you still maintained it.
Thanks for the work so far.

Happy New Year! Please cheer up and please keep us updated!

Please do not give up this project. Thanks for the work so far.

We did not give up @uwe22  ! Still working on this part.... slower than expected as usual !

Hi @stereo3d !
thanks for reaching out. We made some improvements, but not related to VR / HMD features.
We've worked for people that mainly have no interest in HMD unfortunately.
What do you expect from the "next" forgejs ?


Update getting started theme picker images to reflect new themes

You will also want to change these strings to be the new theme names: https://github.com/microsoft/vscode/blob/407cb5a5fb9ac2c904ea72627cd59d78b5174005/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.ts#L13
https://github.com/microsoft/vscode/blob/407cb5a5fb9ac2c904ea72627cd59d78b5174005/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.ts#L17


fix: anyof, allof, schema sorting, captilization, uiSchema

Notes for Reviewers
This PR fixes #

Due to some schema changes recently, a leftover is that "allOf", "anyOf", and "oneOf" are missing a type: "Object", and this further depends on its properties as well as type: "array" based on the items. Added the fix on the UI side.
Restored the two columns layout for the node configuration form.
Fix the uiSchema
Added description to the checkboxes.

Signed commits

[ ] Yes, I signed my commits.

Task linked: CU-85zrwvrvt Checkboxes are missing description, i.e., they don't come with description although it has; "solution: create help tooltip for checkboxes"


Selenium Setup For Facebook Login

A function that takes as arguments the username and password of the user and logins him into facebook using the WebDriver we will be using (most probably Selenium).
Resources:

https://crossbrowsertesting.com/blog/test-automation/automate-login-with-selenium/

I would like to take up this issue and work on it.. Should I procede??

Yes, please.
I would also request you to join the communication channel on gitter.
On Sat 11 May, 2019, 11:39 HARSHIT JAIN<EMAIL_ADDRESS>wrote:

I would like to take up this issue and work on it.. Should I procede??
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/oss2019/naarad/issues/6#issuecomment-491483261, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH2K2IELLS2EOTKS5M4NNITPUZPJJANCNFSM4HMGIANQ
.

I have joined it sir.

You can begin working on this; I'm adding the instructions on how to set up the development environment within the next 5 minutes.

great sir

I've updated the development instructions, please have a look and notify me if you need help with anything.

hi sir I have made this issue complete.
Please guide me where to upload the file??

Hey @iharshit009 , you can use git to update the repository and create a pull request.
If you are not familiar with git, please use this tutorial and make yourself at home with git and then upload the work you've done on the issue. Feel free to approach me for further help :)

Sir Please check the PR ...

fixed in #10


GetConformers(Mol) returns non-tuple object

Describe the bug
GetConformers(Mol) returns rdkit.Chem.rdchem._ROConformerSeq not tuple of  Conformer after merging https://github.com/rdkit/rdkit/pull/3527. The RDKit documentation shows the method returns "all the conformers as a tuple".
To Reproduce
from rdkit import Chem
from rdkit.Chem import AllChem

mol = Chem.MolFromSmiles("C1CCCCC1CC")
AllChem.EmbedMultipleConfs(mol)
print(type(mol.GetConformers()))

for i, conf in enumerate(mol.GetConformers()):
    if i == 2:
        mol.RemoveConformer(i)

The above code prints "<class 'rdkit.Chem.rdchem._ROConformerSeq'>" and raises RuntimeError.
Expected behavior
Prints "<class 'tuple'>" and ends without error.
Configuration:

RDKit version: 2020.09.4
OS: Ubuntu 18_04 (built by myself) / Windows (form conda-forge)

Some existing code assumes the method returns tuple, ie, removing/adding conformer during iteration of conformers, which causes not only RuntimeError but MemoryError or Segmentation fault by chance. (I could not find a solid test case yet.)
I think we should introduce a new method to iterate conformers.

You are correct that the documentation is now wrong. Thanks for pointing that out.
The runtime error is because the result of GetConformers() is now "live" and you are modifying the molecule's conformers as you loop over that sequence.
If you want a tuple you can just convert the results to a tuple:
for i, conf in enumerate(mol.GetConformers()):
    if i == 2:
        mol.RemoveConformer(conf.GetId())

I also changed this to call conf.GetId(). It's not safe to assume that the conformers are numbered 0-numConformers.
A couple of things to note:

#3527 was merged to deal with a memory management problem - it was possible to delete a molecule even though there were still conformers around which reference the molecule. Converting the result of GetConformers() to a tuple (or list, or whatever) exposes you to the same risk.
A general point. I know this is just sample code, but unless you have a specific reason not to you should always add Hs to a molecule before you generate conformers for it.

Thanks Greg for your guidance.  I missed that the docstring has already changed.


deliver fails while metadata is provided in Fastfile

New Issue Checklist

[X] Updated fastlane to the latest version
[X] I have read the Contribution Guidelines

Issue Description
Scenario
IPA file is uploaded with testflight action and submitted for external testing successfully. The IPA file is therefore available on iTC and is not uploaded again with deliver action. Also, previous version exists and is live (Ready for Sale).
deliver action is called to create a new version in iTC, upload metadata with updated release notes and
submit the new version for Appstore review.
Actual behavior
When release notes are provided in Fastfile, see following excerpt:
      release_notes: {
        'en-US': "Minor fixes\n",
        #'default': "Minor fixes"
      }

then submission fails, see Output/Log below. It does not matter whether there is trailing new line character \n or not, behavior is the same in both cases.
If the block above is removed from Fastfile and the same release notes text is added into file ./fastlane/metadata/en-US/release_notes.txt, then submission works.
Expected behavior
deliver action with metadata provided via Fastfile works the same way as if metadata is provided via file.
Complete output when running fastlane, including the stack trace and command used
Captured Output
Command Used: submit<EMAIL_ADDRESS>appid:com.grocerkey.shopper.woodmans
Output/Log

DEBUG [2017-06-06 10:34:50.63]: Checking if there are any plugins that should be loaded...
DEBUG [2017-06-06 10:34:50.67]: Loading 'fastlane-plugin-update_xcodeproj' plugin
INFO [2017-06-06 10:34:50.71]: gem 'fastlane-plugin-update_xcodeproj' is already installed
+------------------------+---------+------------------+
|                    Used plugins                     |
+------------------------+---------+------------------+
| Plugin                 | Version | Action           |
+------------------------+---------+------------------+
| fastlane-plugin-updat  | 0.1.2   | update_xcodeproj |
| e_xcodeproj            |         |                  |
+------------------------+---------+------------------+

DEBUG [2017-06-06 10:34:50.73]: Using username<EMAIL_ADDRESS>DEBUG [2017-06-06 10:34:50.73]: Using appid: com.grocerkey.shopper.woodmans
INFO [2017-06-06 10:34:50.75]: -------------------------------------------------
INFO [2017-06-06 10:34:50.75]: --- Step: Verifying required fastlane version ---
INFO [2017-06-06 10:34:50.75]: -------------------------------------------------
INFO [2017-06-06 10:34:50.75]: Your fastlane version 2.37.0 matches the minimum requirement of 2.30.2  ✅
INFO [2017-06-06 10:34:50.75]: ------------------------------
INFO [2017-06-06 10:34:50.75]: --- Step: default_platform ---
INFO [2017-06-06 10:34:50.75]: ------------------------------
INFO [2017-06-06 10:34:50.75]: Driving the lane 'ios submit' 🚀
INFO [2017-06-06 10:34:50.75]: -----------------------------
INFO [2017-06-06 10:34:50.75]: --- Step: update_fastlane ---
INFO [2017-06-06 10:34:50.75]: -----------------------------
INFO [2017-06-06 10:34:50.75]: Looking for updates for fastlane...
INFO [2017-06-06 10:34:52.79]: Nothing to update ✅
INFO [2017-06-06 10:34:52.79]:
INFO [2017-06-06 10:34:52.79]: Please help us test early releases of fastlane by opting into nightly builds 🌃
INFO [2017-06-06 10:34:52.79]: Just replace your `update_fastlane` call with
INFO [2017-06-06 10:34:52.79]:
INFO [2017-06-06 10:34:52.79]: ▸ update_fastlane(nightly: true)
INFO [2017-06-06 10:34:52.79]:
INFO [2017-06-06 10:34:52.79]: Nightly builds are reviewed and tested just like the public releases 🚂
INFO [2017-06-06 10:34:52.79]:
INFO [2017-06-06 10:34:52.79]: ---------------------
INFO [2017-06-06 10:34:52.79]: --- Step: deliver ---
INFO [2017-06-06 10:34:52.79]: ---------------------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
Successfully loaded Appfile at path '/Users/administrator/iphone-front-end/fastlane/Appfile'
-------
INFO [2017-06-06 10:34:52.81]: Login to iTunes Connect<EMAIL_ADDRESS>Looking for iTunes Connect Team with ID 1643180
INFO [2017-06-06 10:34:56.46]: Login successful

+-----------------------+--------------------------------+
|                 deliver 2.37.0 Summary                 |
+-----------------------+--------------------------------+
| username              |<EMAIL_ADDRESS>          |
| team_id               | 1643180                        |
| app_identifier        | com.grocerkey.shopper.woodmans |
| force                 | true                           |
| skip_screenshots      | true                           |
| skip_binary_upload    | true                           |
| automatic_release     | false                          |
| app_version           | 1.0.12                         |
| build_number          | 73                             |
| submit_for_review     | true                           |
| release_notes.en-US   | Minor fixes                    |
| screenshots_path      | ./fastlane/screenshots         |
| metadata_path         | ./fastlane/metadata            |
| edit_live             | false                          |
| platform              | ios                            |
| skip_metadata         | false                          |
| overwrite_screenshots | false                          |
+-----------------------+--------------------------------+

INFO [2017-06-06 10:34:57.55]: Making sure the latest version on iTunes Connect matches '1.0.12' from the ipa file...
INFO [2017-06-06 10:35:00.69]: '1.0.12' is the latest version on iTunes Connect
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/en-US/description.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/en-US/keywords.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/en-US/release_notes.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/en-US/support_url.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/en-US/name.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/en-US/privacy_url.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/copyright.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/primary_category.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/secondary_category.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/trade_representative_contact_information/trade_name.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/trade_representative_contact_information/address_line1.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/trade_representative_contact_information/city_name.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/trade_representative_contact_information/state.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/trade_representative_contact_information/country.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/trade_representative_contact_information/postal_code.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/trade_representative_contact_information/is_displayed_on_app_store.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/review_information/first_name.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/review_information/last_name.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/review_information/phone_number.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/review_information/email_address.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/review_information/demo_user.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/review_information/demo_password.txt'...
INFO [2017-06-06 10:35:00.69]: Loading './fastlane/metadata/review_information/notes.txt'...
INFO [2017-06-06 10:35:02.89]: Activating languages en-US, en-US...
iTunes Connect temporary error received: 'There was an error saving changes. Please try again later or contact App Store Developer Support.'. Retrying after 60 seconds (remaining: 4)...
iTunes Connect temporary error received: 'There was an error saving changes. Please try again later or contact App Store Developer Support.'. Retrying after 60 seconds (remaining: 3)...
iTunes Connect temporary error received: 'There was an error saving changes. Please try again later or contact App Store Developer Support.'. Retrying after 60 seconds (remaining: 2)...
iTunes Connect temporary error received: 'There was an error saving changes. Please try again later or contact App Store Developer Support.'. Retrying after 60 seconds (remaining: 1)...
WARN [2017-06-06 10:40:04.59]: Lane Context:
INFO [2017-06-06 10:40:04.59]: {:DEFAULT_PLATFORM=>:ios, :PLATFORM_NAME=>:ios, :LANE_NAME=>"ios submit"}
ERROR [2017-06-06 10:40:04.59]: There was an error saving changes. Please try again later or contact App Store Developer Support.
INFO [2017-06-06 10:40:04.59]: Successfully generated documentation at path '/Users/administrator/iphone-front-end/fastlane/README.md'

+------+---------------------+-------------+
|             fastlane summary             |
+------+---------------------+-------------+
| Step | Action              | Time (in s) |
+------+---------------------+-------------+
| 1    | Verifying required  | 0           |
|      | fastlane version    |             |
| 2    | default_platform    | 0           |
| 3    | update_fastlane     | 2           |
| 💥   | deliver             | 311         |
+------+---------------------+-------------+

DEBUG [2017-06-06 10:40:04.60]: All plugins are up to date
ERROR [2017-06-06 10:40:04.60]: fastlane finished with errors

Looking for related GitHub issues on fastlane/fastlane...
Search query: The request could not be completed because:
	There was an error saving changes. Please try again later or contact App Store Developer Support.

URL: https://api.github.com/search/issues?q=The%20request%20could%20not%20be%20completed%20because:%0A%09There%20was%20an%20error%20saving%20changes.%20Please%20try%20again%20later%20or%20%3Ca%20href='http://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wa/jumpTo?page=contactUs&contactfaq=errorhelp'%3Econtact%20App%20Store%20Developer%20Support%3C/a%3E.+repo:fastlane/fastlane
Found no similar issues. To create a new issue, please visit:
https://github.com/fastlane/fastlane/issues/new
Run `fastlane env` to append the fastlane environment to your issue
DEBUG [2017-06-06 10:40:04.78]: All plugins are up to date

✅ fastlane environment ✅
Stack

Key
Value

OS
10.12.5

Ruby
2.4.1

Bundler?
false

Git
git version 2.13.0

Installation Source
~/.rbenv/versions/2.4.1/bin/fastlane

Host
Mac OS X 10.12.5 (16F73)

Ruby Lib Dir
~/.rbenv/versions/2.4.1/lib

OpenSSL Version
OpenSSL 1.0.2k  26 Jan 2017

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
8.3.2

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE
en_US.UTF-8
✅

fastlane files:
`./fastlane/Fastfile`
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.30.2"

firebase_profile = "#{ENV['HOME']}/secrets/grocerkey-frontend-fbe1e86f94ea.json"

default_platform :ios

platform :ios do
  before_all do
    # Frequent updates of fastlane as necessary due to ever changing Apple Developer portal interface.
    update_fastlane
    #
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
    # cocoapods
  end

##### Private lane: set_version
  desc "Set build number"
  private_lane :set_version do
    build_id = ENV['CI_BUILD_ID']
    puts("Setting build number to #{build_id}")
    # increment_version_number(version_number: build_id)
    increment_build_number(build_number: build_id)
  end

##### Private lane: upload_firebase
# upload_firebase(google_info: , app_info: , firebase_profile: , dSYMs: )
  desc "Upload symbols to firebase"
  private_lane :upload_firebase do |options|
    google_info = options[:google_info] || "#{ENV['PWD']}/shopperapp/Config/appstoreplist/GoogleService-Info.plist"
    app_info = options[:app_info] || "#{ENV['PWD']}/shopperapp/GrocerKey AppStore-Info.plist"
    firebase_profile = options[:firebase_profile] || firebase_profile
    dSYMs = options[:dSYMs] || "#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs"
    Dir["#{dSYMs}/*"].each {|symdir|
      # Uploading symbols to Firebase
      sh("#{ENV['PWD']}/Pods/FirebaseCrash/batch-upload -v -p \'#{google_info}\' -i \'#{app_info}\' \'#{firebase_profile}\' \'#{symdir}\'")
      # Introducing Guard interval (in seconds), otherwise Google would complain about "Insufficient tokens for quota"
      guard_interval = 10
      puts "Waiting for #{guard_interval} seconds to prevent hitting Google Firebase upload quota"
      sleep(guard_interval)
    }
  end

##### Lane: submit
  desc "Submits for appstore review, using IPA file previously uploaded with testflight"
  lane :submit do |options|
    deliver(
      username: options[:username],
      team_id: "1643180",
      app_identifier: options[:appid],
      force: true,
      skip_screenshots: true,
      skip_binary_upload: true,
      # It is not possible to skip metadata if Release Notes are not filled in already on iTC,
      # because Release Notes are uploaded to iTC only if metadata upload is enabled.
      # Without Release Notes it is not possible to submit the app for review.
      #skip_metadata: true,
      automatic_release: false,
      app_version: "1.0.12",
      build_number: "73",
      submit_for_review: true,
      release_notes: {
        'en-US': "Minor fixes\n",
        #'default': "Minor fixes"
      }
    )
  end

##### Lane: PREPARE ########################
  desc "Prepare provisioning profile and GrocerKey code signing certificate for manual adhoc build"
  lane :prepare do

    keychain_path = "#{ENV['PWD']}/ci.keychain-db"
    puts("Keychain path will be: #{keychain_path}")
    team_id = "U5CS3T9JSF"
    target = "GrocerKey Dev"
    username =<EMAIL_ADDRESS>    # CN of code signing certificate
    certCN = "iPhone Distribution: Grocerkey, Inc (U5CS3T9JSF)"

    # Clean up derived data
    clear_derived_data

    # Delete possible leftover keychain file, otherwise creation of a new temporary keychain would fail
    # Not needed if we can have a keychain file in the current working directory
    if File.exists?(keychain_path)
      puts("Deleting old keychain file: #{keychain_path}")
      FileUtils.rm_f(keychain_path)
    end

    # Cleanup keychain search list
    # Setting keychain search list explicitly to the keychain path; if set to empty string then match would fail
    sh("security list-keychains -s '#{keychain_path}'")

    # Creating temporary keychain
    create_keychain(
      path: keychain_path,
      default_keychain: true,
      unlock: true,
      timeout: false,
      password: SecureRandom.base64
    )

    # Provision devices from file Provisioning/devices to Apple developer portal; optimistic provisioning applies
    register_devices(
      devices_file: "./devices",
      team_id: team_id,
      username: username
    )

    # Remove all existing local provisioning profiles and all distribution provisioning profiles on the development portal
    sh('fastlane sigh manage --force --clean_pattern ".*"')

    # Assure we have right adhoc distribution certificates and provisioning profiles
    match(
      git_url: "git@github.com:GrocerKey/ios-repository.git",
      git_branch: team_id,
      type: "adhoc",
      app_identifier: [ "com.grocerkey.shopperapp.development" ],
      username: username,
      keychain_name: keychain_path,
      team_id: team_id,
      verbose: true,
      force: true,
      shallow_clone: true,
    )

    # Disable automatic codesigning and set team
    automatic_code_signing(
      path: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      use_automatic_signing: false,
      team_id: team_id
    )

    update_project_provisioning(
      xcodeproj: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      profile: "#{ENV['sigh_com.grocerkey.shopperapp.development_adhoc_profile-path']}"
#      target_filter: ".*WatchKit Extension.*", # matches name or type of a target
#      build_configuration: "Release"
    )

  end

##### Lane: SHENV ########################
  desc "Test sh(env) current directory"
  lane :shenv do
    puts("Call of sh('env')")
    sh('env')
    puts("Call of sh('pwd')")
    sh('pwd')
    puts("Call of sh('env')")
    sh('env')
  end

##### Lane: DEVELOPMENT ########################
desc "Development fastlane"
lane :development do

   keychain_path = "#{ENV['PWD']}/ci.keychain-db"
    puts("Keychain path will be: #{keychain_path}")
    team_id = "U5CS3T9JSF"
    target = "GrocerKey Dev"
    username =<EMAIL_ADDRESS>    appid = "com.grocerkey.shopperapp.development"
    display_name = "Development"
    # CN of code signing certificate
    certCN = "iPhone Distribution: Grocerkey, Inc (U5CS3T9JSF)"

    # Clean up derived data
    clear_derived_data

    # Delete possible leftover keychain file, otherwise creation of a new temporary keychain would fail
    # Not needed if we can have a keychain file in the current working directory
    if File.exists?(keychain_path)
      puts("Deleting old keychain file: #{keychain_path}")
      FileUtils.rm_f(keychain_path)
    end

    # Cleanup keychain search list
    # Setting keychain search list explicitly to the keychain path; if set to empty string then match would fail
    sh("security list-keychains -s '#{keychain_path}'")

    # Creating temporary keychain
    create_keychain(
      path: keychain_path,
      default_keychain: true,
      unlock: true,
      timeout: false,
      password: SecureRandom.base64
    )

    # Provision devices from file Provisioning/devices to Apple developer portal; optimistic provisioning applies
    register_devices(
      devices_file: "./devices",
      team_id: team_id,
      username: username
    )

    # Remove all existing local provisioning profiles and all distribution provisioning profiles on the development portal
    sh('fastlane sigh manage --force --clean_pattern ".*"')

    # Assure we have right adhoc distribution certificates and provisioning profiles
    match(
      git_url: "git@github.com:GrocerKey/ios-repository.git",
      git_branch: team_id,
      type: "adhoc",
      app_identifier: [ appid ],
      username: username,
      keychain_name: keychain_path,
      team_id: team_id,
      verbose: true,
      force: true,
      shallow_clone: true,
    )

    # Disable automatic codesigning and set team
    automatic_code_signing(
      path: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      use_automatic_signing: false,
      team_id: team_id
    )

    update_project_provisioning(
      xcodeproj: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      profile: "#{ENV["sigh_#{appid}_adhoc_profile-path"]}"
#      target_filter: ".*WatchKit Extension.*", # matches name or type of a target
#      build_configuration: "Release"
    )

 sh('env')

  # Set version and build number
  set_version

  # Building and archiving the project with wildcard provisioning profile, to avoid problems with signining of Cocoa pods, due to https://github.com/CocoaPods/CocoaPods/issues/4331
  # While lane is executed in the current directory, 'sh' action executes in ./fastlane/ subdirectory
  sh("xcodebuild -workspace #{ENV['PWD']}/GrocerKey.xcworkspace -scheme '#{target}' -destination generic/platform=iOS -sdk iphoneos -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive clean build archive CODE_SIGN_IDENTITY='#{certCN}'")

  # Exporting the archive with com.grocerkey.shopperapp provisioning profile
  sh("xcodebuild -verbose -exportArchive -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive -exportOptionsPlist '#{ENV['PWD']}/exportOptions.#{target}.plist' -exportPath #{ENV['PWD']}/build")

  # Zipping symbols to be uploaded to Hockey for symbolication
  sh("zip -r \'#{ENV['PWD']}/build/#{target}.app.dSYM.zip\' \'#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs\'")

  # Uploading to Hockey. The name of IPA file is the same as the name of a target/scheme
  hockey(
    ipa: "./build/#{target}.ipa",
  )

    # Uploading symbols to Firebase
    upload_firebase(
      google_info: "#{ENV['PWD']}/shopperapp/Config/devplist/GoogleService-Info.plist",
      app_info: "#{ENV['PWD']}/shopperapp/#{target}-Info.plist",
      firebase_profile: firebase_profile,
      dSYMs: "#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs"
    )

  # Deleting temporary keychain, cleanup
  delete_keychain(
    keychain_path: keychain_path
  )

end

##### Lane: STAGING ########################
  desc "Staging fastlane"
  lane :staging do

    keychain_path = "#{ENV['PWD']}/ci.keychain-db"
    puts("Keychain path will be: #{keychain_path}")
    team_id = "U5CS3T9JSF"
    target = "GrocerKey Staging"
    username =<EMAIL_ADDRESS>    appid = "com.grocerkey.shopperapp.staging"
    display_name = "Staging"
    # CN of code signing certificate
    certCN = "iPhone Distribution: Grocerkey, Inc (U5CS3T9JSF)"

    # Clean up derived data
    clear_derived_data

    # Delete possible leftover keychain file, otherwise creation of a new temporary keychain would fail
    # Not needed if we can have a keychain file in the current working directory
    if File.exists?(keychain_path)
      puts("Deleting old keychain file: #{keychain_path}")
      FileUtils.rm_f(keychain_path)
    end

    # Cleanup keychain search list
    # Setting keychain search list explicitly to the keychain path; if set to empty string then match would fail
    sh("security list-keychains -s '#{keychain_path}'")

    # Creating temporary keychain
    create_keychain(
      path: keychain_path,
      default_keychain: true,
      unlock: true,
      timeout: false,
      password: SecureRandom.base64
    )

    # Provision devices from file Provisioning/devices to Apple developer portal; optimistic provisioning applies
    register_devices(
      devices_file: "./devices",
      team_id: team_id,
      username: username
    )

    # Remove all existing local provisioning profiles and all distribution provisioning profiles on the development portal
    sh('fastlane sigh manage --force --clean_pattern ".*"')

    # Assure we have right adhoc distribution certificates and provisioning profiles
    match(
      git_url: "git@github.com:GrocerKey/ios-repository.git",
      git_branch: team_id,
      type: "adhoc",
      app_identifier: [ appid ],
      keychain_name: keychain_path,
      team_id: team_id,
      username: username,
      verbose: true,
      force: true,
      shallow_clone: true,
    )

    automatic_code_signing(
      path: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      use_automatic_signing: false,
      team_id: team_id
    )

    update_project_provisioning(
      xcodeproj: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      profile: "#{ENV["sigh_#{appid}_adhoc_profile-path"]}"
#      target_filter: ".*WatchKit Extension.*", # matches name or type of a target
#      build_configuration: "Release"
    )

    sh('env')

    # Set version and build number
    set_version

    # While lane is executed in the current directory, 'sh' action executes in ./fastlane/ subdirectory
    sh("xcodebuild -workspace #{ENV['PWD']}/GrocerKey.xcworkspace -scheme '#{target}' -destination generic/platform=iOS -sdk iphoneos -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive clean build archive CODE_SIGN_IDENTITY='#{certCN}'")

    # Exporting the archive with com.grocerkey.shopperapp provisioning profile
    sh("xcodebuild -verbose -exportArchive -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive -exportOptionsPlist '#{ENV['PWD']}/exportOptions.#{target}.plist' -exportPath #{ENV['PWD']}/build")

    # Zipping symbols to be uploaded to Hockey for symbolication
    sh("zip -r \'#{ENV['PWD']}/build/#{target}.app.dSYM.zip\' \'#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs\'")

    # Uploading to Hockey. The name of IPA file is the same as the name of a target/scheme
    hockey(
      ipa: "./build/#{target}.ipa",
    )

    # Uploading symbols to Firebase
    upload_firebase(
      google_info: "#{ENV['PWD']}/shopperapp/Config/stagingplist/GoogleService-Info.plist",
      app_info: "#{ENV['PWD']}/shopperapp/#{target}-Info.plist",
      firebase_profile: firebase_profile,
      dSYMs: "#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs"
    )

    # Deleting temporary keychain, cleanup
    delete_keychain(
      keychain_path: keychain_path
    )

  end

##### Lane: PRODUCTION ADHOC ########################
  desc "Production Adhoc fastlane"
  lane :production_adhoc do

    keychain_path = "#{ENV['PWD']}/ci.keychain-db"
    puts("Keychain path will be: #{keychain_path}")
    team_id = "U5CS3T9JSF"
    target = "GrocerKey Production"
    username =<EMAIL_ADDRESS>    appid = "com.grocerkey.shopperapp"
    display_name = "Production"
    # CN of code signing certificate
    certCN = "iPhone Distribution: Grocerkey, Inc (U5CS3T9JSF)"

    # Clean up derived data
    clear_derived_data

    # Delete possible leftover keychain file, otherwise creation of a new temporary keychain would fail
    # Not needed if we can have a keychain file in the current working directory
    if File.exists?(keychain_path)
      puts("Deleting old keychain file: #{keychain_path}")
      FileUtils.rm_f(keychain_path)
    end

    # Cleanup keychain search list
    # Setting keychain search list explicitly to the keychain path; if set to empty string then match would fail
    sh("security list-keychains -s '#{keychain_path}'")

    # Creating temporary keychain
    create_keychain(
      path: keychain_path,
      default_keychain: true,
      unlock: true,
      timeout: false,
      password: SecureRandom.base64
    )

    # Provision devices from file Provisioning/devices to Apple developer portal; optimistic provisioning applies
    register_devices(
      devices_file: "./devices",
      team_id: team_id,
      username: username
    )

    # Remove all existing local provisioning profiles and all distribution provisioning profiles on the development portal
    sh('fastlane sigh manage --force --clean_pattern ".*"')

    # Assure we have right adhoc distribution certificates and provisioning profiles
    match(
      git_url: "git@github.com:GrocerKey/ios-repository.git",
      git_branch: team_id,
      type: "adhoc",
      app_identifier: [ appid ],
      keychain_name: keychain_path,
      team_id: team_id,
      username: username,
      verbose: true,
      force: true,
      shallow_clone: true,
    )

    automatic_code_signing(
      path: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      use_automatic_signing: false,
      team_id: team_id
    )

    update_project_provisioning(
      xcodeproj: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      profile: "#{ENV["sigh_#{appid}_adhoc_profile-path"]}"
#      target_filter: ".*WatchKit Extension.*", # matches name or type of a target
#      build_configuration: "Release"
    )

    sh('env')

    # Set version and build number
    set_version

    # While lane is executed in the current directory, 'sh' action executes in ./fastlane/ subdirectory
    sh("xcodebuild -workspace #{ENV['PWD']}/GrocerKey.xcworkspace -scheme '#{target}' -destination generic/platform=iOS -sdk iphoneos -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive clean build archive CODE_SIGN_IDENTITY='#{certCN}'")

    # Exporting the archive with com.grocerkey.shopperapp provisioning profile
    sh("xcodebuild -verbose -exportArchive -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive -exportOptionsPlist '#{ENV['PWD']}/exportOptions.#{target}.plist' -exportPath #{ENV['PWD']}/build")

    # Zipping symbols to be uploaded to Hockey for symbolication
    sh("zip -r \'#{ENV['PWD']}/build/#{target}.app.dSYM.zip\' \'#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs\'")

    # Uploading to Hockey. The name of IPA file is the same as the name of a target/scheme
    hockey(
      ipa: "./build/#{target}.ipa",
    )

    # Uploading symbols to Firebase
    upload_firebase(
      google_info: "#{ENV['PWD']}/shopperapp/Config/productplist/GoogleService-Info.plist",
      app_info: "#{ENV['PWD']}/shopperapp/#{target}-Info.plist",
      firebase_profile: firebase_profile,
      dSYMs: "#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs"
    )

    # Deleting temporary keychain, cleanup
    delete_keychain(
      keychain_path: keychain_path
    )

  end

##### Lane: PRODUCTION APPSTORE ########################
desc "Production Appstore fastlane"
lane :production_appstore do

    keychain_path = "#{ENV['PWD']}/ci.keychain-db"
    puts("Keychain path will be: #{keychain_path}")
    team_id = "6ZCDE9E4B2"
    target = "GrocerKey AppStore"
    username =<EMAIL_ADDRESS>    appid = "com.grocerkey.shopper.woodmans"
    display_name = "Woodmans"
    # CN of code signing certificate
    certCN = 'iPhone Distribution: Woodman\'s Food Market INC (6ZCDE9E4B2)'

    # Clean up derived data
    clear_derived_data

    # Delete possible leftover keychain file, otherwise creation of a new temporary keychain would fail
    # Not needed if we can have a keychain file in the current working directory
    if File.exists?(keychain_path)
      puts("Deleting old keychain file: #{keychain_path}")
      FileUtils.rm_f(keychain_path)
    end

    # Cleanup keychain search list
    # Setting keychain search list explicitly to the keychain path; if set to empty string then match would fail
    sh("security list-keychains -s '#{keychain_path}'")

    # Creating temporary keychain
    create_keychain(
      path: keychain_path,
      default_keychain: true,
      unlock: true,
      timeout: false,
      password: SecureRandom.base64
    )

#=begin
   # Provision devices from file Provisioning/devices to Apple developer portal; optimistic provisioning applies
    register_devices(
      devices_file: "./devices",
      team_id: team_id,
      username: username
    )
#=end

    # Remove all existing local provisioning profiles and all distribution provisioning profiles on the development portal
    sh('fastlane sigh manage --force --clean_pattern ".*"')

    # Assure we have right adhoc distribution certificates and provisioning profiles
    match(
      git_url: "git@github.com:GrocerKey/ios-repository.git",
      git_branch: team_id,
      type: "appstore",
      app_identifier: [ appid ],
      keychain_name: keychain_path,
      team_id: team_id,
      username: username,
      verbose: true,
      force: true,
      shallow_clone: true,
	    # The following option is useful while Apple developer portal is experiencing issues.
    	# It allows to use profiles and certificates from git and does not fail on developer portal error.
      # The line above "force: true" must be commented out if we want to use readonly param, otherwise it would not find the provisioning profile
    	# Also, register_devices must be commented out
    	# readonly: true
    )

    # Disable automatic codesigning and set team
    automatic_code_signing(
      path: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      use_automatic_signing: false,
      team_id: team_id
    )

    update_project_provisioning(
      xcodeproj: "#{ENV['PWD']}/GrocerKey.xcodeproj",
      profile: "#{ENV["sigh_#{appid}_appstore_profile-path"]}"
#      target_filter: ".*WatchKit Extension.*", # matches name or type of a target
#      build_configuration: "Release"
    )

  sh('env')

  # Set version and build number
  set_version

  # While lane is executed in the current directory, 'sh' action executes in ./fastlane/ subdirectory
  sh("xcodebuild -workspace #{ENV['PWD']}/GrocerKey.xcworkspace -scheme '#{target}' -destination generic/platform=iOS -sdk iphoneos -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive clean build archive CODE_SIGN_IDENTITY=\"#{certCN}\"")

  # Exporting the archive with com.grocerkey.shopperapp provisioning profile
  sh("xcodebuild -verbose -exportArchive -archivePath #{ENV['PWD']}/build/grocerkey.xcarchive -exportOptionsPlist '#{ENV['PWD']}/exportOptions.#{target}.plist' -exportPath #{ENV['PWD']}/build")

  # Zipping symbols to be uploaded to Hockey for symbolication
  sh("zip -r \'#{ENV['PWD']}/build/#{target}.app.dSYM.zip\' \'#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs\'")

  # Uploading to Hockey. The name of IPA file is the same as the name of a target/scheme
  hockey(
    ipa: "./build/#{target}.ipa",
    dsym: "./build/#{target}.app.dSYM.zip"
  )

    # Uploading symbols to Firebase
    upload_firebase(
      google_info: "#{ENV['PWD']}/shopperapp/Config/appstoreplist/GoogleService-Info.plist",
      app_info: "#{ENV['PWD']}/shopperapp/#{target}-Info.plist",
      firebase_profile: firebase_profile,
      dSYMs: "#{ENV['PWD']}/build/grocerkey.xcarchive/dSYMs"
    )

    # Uploading IPA to iTunes Connect with altool
    #sh("'/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool' --upload-app -f \'#{ENV['PWD']}/build/#{target}.ipa\' -u #{username} -p \'#{ENV['FASTLANE_PASSWORD']}\'")

    # Uploading IPA to iTunes Connect for beta testing
    testflight(
      username: username,
      ipa: "#{ENV['PWD']}/build/#{target}.ipa",
      distribute_external: true,
      # team_id is distinct from Developer portal team_id
      team_id: "1643180",
      # After half an hour of polling with 30 sec interval, iTC returned "403 forbidden"
      # Setting the polling interval longer means lower chance to running ino this issue
      # The problem is being worked on https://github.com/fastlane/fastlane/issues/7768
      # wait_processing_interval sets polling interval in seconds
      wait_processing_interval: 120,
      changelog: "New test build",
      beta_app_feedback_email<EMAIL_ADDRESS>    )

  # Deleting temporary keychain, cleanup
  delete_keychain(
    keychain_path: keychain_path
  )

end

######################################################################################################
### FINAL COMMON BLOCK
######################################################################################################
  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end

# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md

# fastlane reports which actions are used
# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer

`./fastlane/Appfile`
# you can even provide different app identifiers, Apple IDs and team names per lane:
# More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md

fastlane gems

Gem
Version
Update-Status

fastlane
2.37.0
✅ Up-To-Date

Loaded fastlane plugins:

Plugin
Version
Update-Status

fastlane-plugin-update_xcodeproj
0.1.2
✅ Up-To-Date

Loaded gems

Gem
Version

did_you_mean
1.1.2

slack-notifier
1.5.1

CFPropertyList
2.3.5

claide
1.0.1

colored2
3.1.2

nanaimo
0.2.3

xcodeproj
1.4.4

rouge
2.0.7

xcpretty
0.2.7

terminal-notifier
1.7.1

unicode-display_width
1.1.3

terminal-table
1.7.3

plist
3.3.0

public_suffix
2.0.5

addressable
2.5.1

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.5.0

babosa
1.0.2

colored
1.2

highline
1.7.8

commander-fastlane
4.4.4

excon
0.55.0

faraday
0.12.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20170404

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.0

gh_inspector
1.0.3

uber
0.0.15

representable
2.3.0

retriable
2.1.0

mime-types-data
3.2016.0521

mime-types
3.1

hurley
0.2

little-plugger
1.1.4

multi_json
1.12.1

logging
2.2.2

jwt
1.5.6

memoist
0.15.0

os
0.9.6

signet
0.7.3

googleauth
0.5.1

httpclient
2.8.3

google-api-client
0.9.28

mini_magick
4.5.1

multi_xml
0.6.0

rubyzip
1.2.1

security
0.1.3

xcpretty-travis-formatter
0.0.4

dotenv
2.2.1

bundler
1.14.6

faraday_middleware
<IP_ADDRESS>

json
2.1.0

openssl
2.0.3

io-console
0.4.6

fastlane-plugin-update_xcodeproj
0.1.2

rdoc
5.1.0

psych
2.2.4

bigdecimal
1.3.2

generated on: 2017-06-06

@fastlane-bot The issue is not related to code signing for sure.

I'm having the same issue, deliver is complaining that the release_notes aren't provided in some languages while I did provide them in the Fastfile.

I am also seeing the same issue.

I'm taking a look at this right now 👍

Thank you! :)

@taquitos Thanks!

https://github.com/fastlane/fastlane/pull/9605 🎉


Added 2 additional servers

Added Fyre Network & MineKings Network

Hey, considering I removed the GitHub repository from my GitHub account I have proposed another pull request, thanks.


@webext-core/messaging errors with No response when return value contains function

First, many thanks to the contributors ! Nice project and utils 👍
I'm using a content script in main world context to dynamically extract "react props" from the whole dom tree for use in another content script not running in main world context.
In console logs the following abreviation stands for
MW: Main World
CS: Content Script
Messenger caller is in a CS without MW context
Failing: with error thrown but error message doesn't explain why No response
Error message just says
chunk-ALTBYIMW.js:80 Uncaught (in promise) Error: No response
    at Object.<anonymous> (chunk-ALTBYIMW.js:80:92)
    at Generator.next (<anonymous>)
    at fulfilled (chunk-ALTBYIMW.js:37:19)

The issue is that the return value object contains a function.
Example simplified code :
mainWorldMessenger.onMessage("test", (data) => {
  const props = [
    {
      "className": "ml-md",
      onClick: () => {
      }
    }
  ]

  const ret = {reactProps: props};
  log("return value will be", ret)

  return ret
});

Working: messenger func returns with value
mainWorldMessenger.onMessage("test", (data) => {
  const props = [
    {
      "className": "ml-md",
    }
  ]

  const ret = {reactProps: props};
  log("return value will be", ret)

  return ret
});

Solution
Return value can be sanitized.
An error message from @webext-core/messaging explaining why it doesn't return would be nice

Interesting, I would have expected it to not error out when passing a function, but for the function to silently be removed from the response.
I'll see if I can figure out why a response isn't returned in this case and improve the error message.

One issue with window messaging should be clean. I'll take a look at this issue when I have some free time.

Alright, postmessage and dispatchEvent execute structured clone, so we need to check before sending. https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
I'll create a PR.

Released in https://github.com/aklinker1/webext-core/releases/tag/messaging-v2.1.0


SMB Folder

Describe the bug
I have an SMB folder added as a drive in My Computer on Win10 20H2. Every time i enter on this Shared Folder, all folders\files are cloned. It only a index bug\visive bug because from classic explorer nothing happens.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
See folder\files as a classic folder.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS Version: [e.g. Windows 10 20H2  19042.746]
App version: [v<IP_ADDRESS>]

Additional context
Add any other context about the problem here. Does this problem occur again after restarting the app?
Log file
2021-01-12 23:06:06.4099|INFO|.ctor|Drive added: C:, Fixed|
2021-01-12 23:06:06.5625|INFO|.ctor|Drive added: D:, Fixed|
2021-01-12 23:06:06.7091|INFO|.ctor|Drive added: Z:, Network|
2021-01-12 23:07:25.2129|INFO|.ctor|App launched|
2021-01-12 23:07:25.3593|INFO|.ctor|Drive added: C:, Fixed|
2021-01-12 23:07:25.6316|INFO|.ctor|Drive added: D:, Fixed|
2021-01-12 23:07:25.6934|INFO|.ctor|Drive added: Z:, Network|
2021-01-12 23:13:14.6067|INFO|.ctor|App launched|
2021-01-12 23:13:14.9494|INFO|.ctor|Drive added: C:, Fixed|
2021-01-12 23:13:15.1000|INFO|.ctor|Drive added: D:, Fixed|
2021-01-12 23:13:15.2386|INFO|.ctor|Drive added: Z:, Network|
2021-01-12 23:14:53.5491|INFO|.ctor|App activated|
2021-01-12 23:14:53.5940|ERROR|.ctor|Index was outside the bounds of the array.|System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Internal.Runtime.CompilerHelpers.ThrowHelpers.ThrowIndexOutOfRangeException() + 0x25
at Files.App.d__36.MoveNext() + 0xac7
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__7_0(Object) + 0x1e
at System.Action1.Invoke(T) + 0x28    at System.Threading.WinRTSynchronizationContext.Invoker.InvokeCore() + 0x33    at System.Runtime.InteropServices.McgMarshal.ThrowOnExternalCallFailed(Int32, RuntimeTypeHandle) + 0x21    at __Interop.ComCallHelpers.Call(__ComObject, RuntimeTypeHandle, Int32) + 0xb8    at __Interop.ForwardComStubs.Stub_19[TThis](__ComObject, Int32) + 0x24    at Microsoft.AppCenter.Utils.ApplicationLifecycleHelper.<.ctor>b__17_1(Object, UnhandledErrorDetectedEventArgs) + 0x3d --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21    at Microsoft.AppCenter.Utils.ApplicationLifecycleHelper.<.ctor>b__17_1(Object, UnhandledErrorDetectedEventArgs) + 0x75    at System.EventHandler1.Invoke(Object, TEventArgs) + 0x2e
at __Interop.Intrinsics.HasThisCall__24[TArg0](Object, IntPtr, Object, TArg0) + 0x36
at Files!+0x13f5560
2021-01-12 23:14:59.5286|INFO|.ctor|App launched|
2021-01-12 23:14:59.6792|INFO|.ctor|Drive added: C:, Fixed|
2021-01-12 23:14:59.8816|INFO|.ctor|Drive added: D:, Fixed|
2021-01-12 23:14:59.9993|INFO|.ctor|Drive added: Z:, Network|
2021-01-13 08:50:57.5632|INFO|.ctor|App launched|
2021-01-13 08:50:57.9904|INFO|.ctor|Drive added: C:, Fixed|
2021-01-13 08:50:58.1550|INFO|.ctor|Drive added: D:, Fixed|
2021-01-13 08:50:58.2607|INFO|.ctor|Drive added: Z:, Network|
2021-01-13 08:51:41.0141|INFO|.ctor|App launched|
2021-01-13 08:51:41.1517|INFO|.ctor|Drive added: C:, Fixed|
2021-01-13 08:51:41.4020|INFO|.ctor|Drive added: D:, Fixed|
2021-01-13 08:51:41.4419|INFO|.ctor|Drive added: Z:, Network|
2021-01-13 16:34:42.8852|INFO|.ctor|App launched|
2021-01-13 16:34:43.2971|INFO|.ctor|Drive added: C:, Fixed|
2021-01-13 16:34:43.4536|INFO|.ctor|Drive added: D:, Fixed|
2021-01-13 16:34:43.6441|INFO|.ctor|Drive added: Z:, Network|
2021-01-14 16:53:20.1317|INFO|.ctor|App launched|
2021-01-14 16:53:20.4857|INFO|.ctor|Drive added: C:, Fixed|
2021-01-14 16:53:20.6403|INFO|.ctor|Drive added: D:, Fixed|
2021-01-14 16:53:20.7969|INFO|.ctor|Drive added: Z:, Network|
2021-01-14 16:53:44.8874|INFO|.ctor|App launched|
2021-01-14 16:53:45.1848|INFO|.ctor|Drive added: C:, Fixed|
2021-01-14 16:53:45.3663|INFO|.ctor|Drive added: D:, Fixed|
2021-01-14 16:53:45.4242|INFO|.ctor|Drive added: Z:, Network|

Thanks for the report. The issue has been fixed.
For now the workaround is to turn off the "Enable file cache" option in Files settings.

Thanks for the report. The issue has been fixed.
For now the workaround is to turn off the "Enable file cache" option in Files settings.

hello why it has been closed? thanks
BR
Francesco Racano

From: Marco Gavelli<EMAIL_ADDRESS>Sent: Thursday, January 14, 2021, 5:47 PM
To: files-community/Files
Cc: cavallofurioso; Author
Subject: Re: [files-community/Files] SMB Folder (#3022)
Closed #3022https://github.com/files-community/Files/issues/3022.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/files-community/Files/issues/3022#event-4207183507, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASO5MZLNJ6Q35JRLA72EH3LSZ4NZZANCNFSM4WCUZ2IQ.

hello why it has been closed? thanks
BR
Francesco Racano

From: Marco Gavelli<EMAIL_ADDRESS>Sent: Thursday, January 14, 2021, 5:47 PM
To: files-community/Files
Cc: cavallofurioso; Author
Subject: Re: [files-community/Files] SMB Folder (#3022)
Closed #3022https://github.com/files-community/Files/issues/3022.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/files-community/Files/issues/3022#event-4207183507, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASO5MZLNJ6Q35JRLA72EH3LSZ4NZZANCNFSM4WCUZ2IQ.

Bacause this issue has been fixed in the development branch and the fix will ship with the next public version.
For now the workaround is to turn off the "Enable file cache" option in Files settings.

Bacause this issue has been fixed in the development branch and the fix will ship with the next public version.
For now the workaround is to turn off the "Enable file cache" option in Files settings.


Augment t.throws() section of README.

Hi Jordan,
Sorry for the delay on this.  Per our discussion (in issue #540), in this commit I have edited the README to describe the following:

The behavior of t.throws() when the expected parameter is a string.
The fact that the expected parameter for t.throws() can be a validation object (just like Node's assert.throws()).

Have a look and let me know if anything is incomplete or inaccurate.
For now, due to time constraints, I omitted an example of validation object usage, and simply added a link to the Node documentation.  I'd very much like to add such an example (as they've done on the Node documentation page), but I'm out of time today, and might get busy with work tomorrow for the next week or so.  I can try to keep you posted here on that schedule. But it may be the case where you want to merge these edits now, and I open a new pull request next week which adds the validation object example.
Two more questions that we might want to address now (or earmark for future discussion):

Are there files other than the README that should be updated with this information?  If so, I can do that if you want (either in this pull request or a separate pull request in the future).

In the README, should other methods be updated with similar information?  i.e. are there other methods with an expected parameter that cannot be a string?  If so, I can do that if you want (either in this pull request or a separate pull request in the future).

--Carl

Codecov Report

Merging #541 (f7687cc) into master (3b924b0) will decrease coverage by 0.78%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #541      +/-   ##
==========================================
- Coverage   74.15%   73.36%   -0.79%
==========================================
  Files          19       19
  Lines         766      766
  Branches      146      146
==========================================
- Hits          568      562       -6
- Misses        198      204       +6

Impacted Files
Coverage Δ

lib/test.js
94.81% <0.00%> (-1.22%)
:arrow_down:

index.js
96.73% <0.00%> (-1.09%)
:arrow_down:

lib/results.js
99.31% <0.00%> (-0.69%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3b924b0...f7687cc. Read the comment docs.

Codecov Report

Merging #541 (f7687cc) into master (3b924b0) will decrease coverage by 0.78%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #541      +/-   ##
==========================================
- Coverage   74.15%   73.36%   -0.79%
==========================================
  Files          19       19
  Lines         766      766
  Branches      146      146
==========================================
- Hits          568      562       -6
- Misses        198      204       +6

Impacted Files
Coverage Δ

lib/test.js
94.81% <0.00%> (-1.22%)
:arrow_down:

index.js
96.73% <0.00%> (-1.09%)
:arrow_down:

lib/results.js
99.31% <0.00%> (-0.69%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3b924b0...f7687cc. Read the comment docs.

Mind making the same changes to doesNotThrow, just below?

OK sure.  Give me 24 hours and I'll push a new commit to this PR.

(There aren't any other files to update; and other than throws/doesNotThrow, let's save additional updates for another PR)

OK noted on all.

Mind making the same changes to doesNotThrow, just below?

OK sure.  Give me 24 hours and I'll push a new commit to this PR.

(There aren't any other files to update; and other than throws/doesNotThrow, let's save additional updates for another PR)

OK noted on all.

OK I just pushed a second commit with the edits to t.doesNotThrow().  I omitted the validation object as an allowed value for expected, since Node's doesNotThrow does not allow it as a parameter.  I hope that was correct.  If not let me know and I can add it back in.
I also added some of the existing verbiage from t.doesNotThrow() to t.throws() because it looked helpful (speciifclaly the regex usage example).  Let me know if I did so incorrectly.

OK I just pushed a second commit with the edits to t.doesNotThrow().  I omitted the validation object as an allowed value for expected, since Node's doesNotThrow does not allow it as a parameter.  I hope that was correct.  If not let me know and I can add it back in.
I also added some of the existing verbiage from t.doesNotThrow() to t.throws() because it looked helpful (speciifclaly the regex usage example).  Let me know if I did so incorrectly.

Great!  Give me a few more days and I'll add that validation object example we discussed.
If new issues are submitted related to thisarea, feel free to tag me (or this PR, or my commits, or whatever), and I can take a look.

Great!  Give me a few more days and I'll add that validation object example we discussed.
If new issues are submitted related to thisarea, feel free to tag me (or this PR, or my commits, or whatever), and I can take a look.


Middleware/hawkular server group entity needs an icon

needed as glyph and icon, currently some placeholders are used.
https://docs.jboss.org/author/display/WFLY10/Admin+Guide?_sscc=t#AdminGuide-ManagedDomain
related to #10172 and #10338 and #10480
cc @epwinchell @serenamarie125 @chessbyte
@miq-bot add_label ui, providers/hawkular

cc @Jiri-Kremser

@chessbyte please set the relevant assignee - either ui or ux representative?


Refactor alliance transform for C++

Thank you to @PatribotsProgramming for fixing this in Java (#263) so that I could copy it for the C++ fix.

Of course! We're happy to help.

Whats going on here with this PR?  To me this looks like it will break everything. Has WPILib given up on 0,0 being your alliance wall on the right hand side regardless of your alliance colour?
X values in paths shouldn't be touched.     The X values in a path should not be changes.  It was correct before this PR.

No you are correct and I just misunderstood the field coordinate system. Since an alliance dependent origin is what WPILib officially uses, this change and the Java version made in #263 should be removed.
I misattributed this as an issue because it seems to me that the Feild2d Widget in shuffleboard does not properly account for alliance, placing the robot graphic in the wrong position. This limit has not been issue in previous years since the field was rotational symmetric, so would be placed in the right position but on the wrong side of the field.
Additionally our teams vision based odometry system is not alliance dependent, finding the same position with the blue alliance as the origin regardless of our teams alliance, as is the origin for the aprilTags in the field CAD files. For this reason our team will have to change its transform function, but PathPlanner should not. It seems WPILib may want to reconsider this field coordinate system if non-rotationally symmetric fields continue in the future.


Ahn nath/crop representatives photo: [Low Priority] Crop representative photos using Cicero API data

Closes #333
In order to take advantage of the photo_cropping property that lets us improve the appearance of member/profile's pics via the API responses, we have:

Examined the photo_cropping property.
Planned out any modifications that need to be carried out before sending it to the front-end.
Applied inline styling to the photos being displayed in individual representative cards to crop them.
Documented and cleaned the code.

Approach:
The official documentation describes the photo_cropping property as such:

For photos that are zoomed out or off center, an object of the form {x, y, width, height, origWidth, origHeight} specifying the location (from top left) and dimensions of a bounding box that defines a headshot within the official photo.

It identifies or captures the location of the "ideal" headshot, and they provide the x, and y coordinates of the start of the object/headshot. An example of it:
 "photo_cropping": {                                 "x": 54,                                 "y": 0,                                 "width": 176,                                 "height": 180,                                 "origWidth": 450,                                 "origHeight": 250                             }
We can assume that representatives that do have this property (non-null) have a pic that is either zoomed out or off center. For that reason, instead of actually cropping the pictures and creating a function that makes that update, the code I added simply focuses on the frame or quadrant of the image where the object or headshot starts.
Consider the following:

The yellow ball, our object, is at the first quadrant, which means it is at the top-left side of our image of the bigger frame. We locate the object in accordance with its x-location (left or right) and its y-location (top or bottom) and then use the background-position property of the frontend component (v-img) to properly display the pic.
The logic we use is:
For the x-value or x-location:
- If the object/headshot starts at the first part of the left quadrant or side, then we assume the x-value to be left.
- If the object/headshot starts at the first part of the right quadrant or side, then we assume the x-value to be right.
- If none, we assume center as the x-value.

For the y-value or y-location:
- If the object/headshot starts at the first part of the top quadrant or side, then we assume the y-value to be top.
- If the object/headshot starts at the first part of the bottom quadrant or side, then we assume the y-value to be bottom.
- If none, we assume center as the y-value.

Then we simply concatenate both and use them as the CSS value of the background position property. We use the center of the image as a reference for the left and right sides, as well as the top and bottom sides.

Examples:
Each example will have the postal code, and the previous (from the production app) and after (the solution of current version of the changes I propose).
98101
Andrew J. Lewis

10001
Mark Levine

97005
Tobias Read

Exceptions:
If our app does not receive any photo_cropping object (null value), then we cannot modify the pic, even if the change is obvious for us. Consider Rebecca Rhynhart, postal code 19147. We should and can position the image to the right to have a better frame, but the photo_cropping object came as "null".

@thyeggman
I appreciate your comments and the time you invested on this PR; they were helpful.

@ahn-nath Hi, Nath. I think the change in the package-lock.json is accidental and shouldn't be present here. Could you please revert it to the one in the main branch? You can see the changes here and realize that it mentions the axios-cache-interceptor. Maybe you installed it and then uninstalled it? Once you revert to the original package-lock.json, do an npm ci and it should fix everything. Let me know if you need my help.

I will update it soon and commit the fix. Thanks!

Hi @ahn-nath , the logic here is pretty cool 😅


new release?

I'd like to be able to use the changes in master with a pip install -U.

Youy

You probably mean the branch development?
The problem is that some.of these changes in there break compatibility and we would like to have done some refactoring before we release a new major version. But basically you are right, we should try to get the refactoring done and then release.

@patkan tried to add python 3.6 builder (which is stable now) but was confused by the python 3.5 dev stuff, maybe you can also check that out.

The alpha release is out. We can get the changes gradually out by just doing some alphas. That way people can already test the new features and find bugs. :-)


Assert video is not None

Unifi Protect Backup version: latest
Unifi Protect version: 3.0.26
Python version: 3.11.8
Operating System: linux - ubuntu 22.04 headless running Docker version 26.1.0, build 9714adc
Are you using a docker container or native?: Docker

Description
The container is running and backing up however its only backing up one of 3 cameras.
Im seeing the following logs in docker:
2024-05-02 09:29:59 [   INFO    ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Downloading event:<PHONE_NUMBER>ab0203e400042b 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Remaining Download Queue: 0 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Video Download Buffer: 0.0B/512.0MiB 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Camera: Front bedroom 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Type: motion 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Start: 2024-05-02T08-52-09<PHONE_NUMBER>.798) 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    End: 2024-05-02T08-52-27<PHONE_NUMBER>.149) 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Duration: 17.351s 2024-05-02 09:29:59 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Downloading video... 2024-05-02 09:29:59 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 1, retying in 1s Traceback (most recent call last):   File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download     assert isinstance(video, bytes) AssertionError 2024-05-02 09:30:00 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 2, retying in 1s Traceback (most recent call last):   File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download     assert isinstance(video, bytes) AssertionError 2024-05-02 09:30:01 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 3, retying in 1s Traceback (most recent call last):   File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download     assert isinstance(video, bytes) AssertionError 2024-05-02 09:30:02 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 4, retying in 1s Traceback (most recent call last):   File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download     assert isinstance(video, bytes) AssertionError 2024-05-02 09:30:03 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 5, retying in 1s Traceback (most recent call last):   File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download     assert isinstance(video, bytes) AssertionError 2024-05-02 09:30:04 [   ERROR   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Download failed after 5 attempts, abandoning event<PHONE_NUMBER>ab0203e400042b: 2024-05-02 09:30:04 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Event failed download attempt 9 Traceback (most recent call last):   File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 145, in start     assert video is not None            ^^^^^^^^^^^^^^^^^ AssertionError
What I Did
Ive tried restarting the docker container, Ive also double checked the role and user I created un Unifi.
One step of the instructions I could not see in the UDM SE web ui was the step:

Select the newly created user in the list, and navigate to the Assignments tab in the left-hand pane, and ensure all cameras are ticked.

Could I have missed something here that is causing the issue?
Paste the command(s) you ran and the output.

docker logs f23ede089ab0

If there was a crash, please include the traceback here.

`2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.missing_event_checker :  Running check for missing events...
2024-05-02 09:34:54 [  WARNING  ] unifi_protect_backup.missing_event_checker :   Found missing events, adding to backup queue
2024-05-02 09:34:54 [   INFO    ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Downloading event:<PHONE_NUMBER>ab0203e400042b
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Remaining Download Queue: 0
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Video Download Buffer: 0.0B/512.0MiB
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Camera: Front bedroom
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Type: motion
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Start: 2024-05-02T08-52-09<PHONE_NUMBER>.798)
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    End: 2024-05-02T08-52-27<PHONE_NUMBER>.149)
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Duration: 17.351s
2024-05-02 09:34:54 [   DEBUG   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]    Downloading video...
2024-05-02 09:34:54 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 1, retying in 1s
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download
    assert isinstance(video, bytes)
AssertionError
2024-05-02 09:34:55 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 2, retying in 1s
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download
    assert isinstance(video, bytes)
AssertionError
2024-05-02 09:34:56 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 3, retying in 1s
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download
    assert isinstance(video, bytes)
AssertionError
2024-05-02 09:34:57 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 4, retying in 1s
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download
    assert isinstance(video, bytes)
AssertionError
2024-05-02 09:34:58 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]      Failed download attempt 5, retying in 1s
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 185, in _download
    assert isinstance(video, bytes)
AssertionError
2024-05-02 09:34:59 [   ERROR   ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Download failed after 5 attempts, abandoning event<PHONE_NUMBER>ab0203e400042b:
2024-05-02 09:34:59 [  WARNING  ] unifi_protect_backup.downloader            : [6633463001ab0203e400042b]  Event failed download attempt 10
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/unifi_protect_backup/downloader.py", line 145, in start
    assert video is not None
           ^^^^^^^^^^^^^^^^^
AssertionError`

Thank you for your help and time figuring this out.
Kind regards
Andrew

I think this may have had something to do with the image version I was setting. In my docker-compose I was setting
image: ghcr.io/ep1cman/unifi-protect-backup:latest
changing it to the following seems to have stopped these errors from showing:
image: ghcr.io/ep1cman/unifi-protect-backup:0.10.7
Its now also picking up all my cameras correctly - apologies for the noise.
Ill close this issue now.
Kind regards
Andrew

This would not have been caused by the container version. It's caused by UniFi protect serving an empty file which happens every so often. I think UniFi protect sometimes fails to save clips

Ah excellent :) Thank you for letting me know - I wasn't sure as it was the first time I have tried your app. Cool app by the way, thank you for developing it :)


Show network on NFT cards

some of the cards dont have network displayed. The item can be unlisted but the network should be there.

happens mostly in gallery item.

👋


App customiser interfaces don't work inside Gadgetbridge

...I have not tested them all, but this is generally my experience.
Example with Schedulers interface:

Open app loader inside Bangle.js Gadgetbridge.
Navigate to Scheduler app entry (make sure it's installed on the watch).
Click the floppy disk icon of Scheduler app entry to try and access its interface.
The interface starts loading and the UI is visible behind a dialog saying "Please wait Loading...".
The dialog doesn't go away.
Clicking the interface's x-button takes me back to the app loader window.

Logcat that starts on step 3 above is attached:
logcat-clicking-scheduler-floppy-disk-icon-in-app-loader-in-gadgetbridge.txt
I don't know what the approach should be. Maybe it's hard to implement e.g. Recorders interface inside Gadgetbridge. One could imagine the downloaded file being stored in Gadgetbridge's Export/Import directory - but I don't know how hard that would be to implement. But the Scheduler one shouldn't be too hard to get working I'd think - but I know hardly anything about webviews so maybe shouldn't say too much.

Just to be clear, this is the interface.html - not custom.html - those pretty much all work fine I think.
I encountered this before with openstmap and didn't have a chance to look into it fully, but as far as I could see it's some issue with how char code 255 (0xff) is received and pushed to JavaScript. Without it the functions in Comms that end up receiving files/data/etc don't know that the transmission has ended.

Thanks for clarifying! (Yes - I was under the impression those were the same thing 🙃)

You can debug by connecting your phone with adb, then going to chrome://inspect/#devices in Chrome once the app loader is loaded in Gadgetbridge.
Paste this into the console:
var oldBangleRx = bangleRx; bangleRx = function(d) { console.log("RX",JSON.stringify(d)); oldBangleRx(d); }
Android.bangleTx("\x10Bluetooth.println('Hello')\n")

Then you get "Hello\r\n" - great.
But:
Android.bangleTx("\x10Bluetooth.println('\\xff')\n")

Gives "�\r\n" and "�\r\n".charCodeAt() == 65533
The code is getting there ok though because:
Android.bangleTx("\x10Bluetooth.println('\\xff'.charCodeAt())\n")

gives "255\r\n" - so it's a Gadgetbridge issue about how char code 255 ends up translated to a JS a string. It's probably UTF8 related again :(
I think it's https://codeberg.org/Freeyourgadget/Gadgetbridge/src/branch/master/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/AppsManagementActivity.java#L153-L156
The idea was we use the JSON library to create a JS string, but I wonder what Android thinks is in that String - whether it's char code 255 or 65533

I've had trouble using adb directly. I can use wireless debugging with Android Studio to build and install to my phone. I'll try and read up on it again.

Ok, just fixed with https://codeberg.org/Freeyourgadget/Gadgetbridge/commit/e18a991b138d9097f053457ef156e48d78130608

I just added some code that should help with downloads too - although for it to work for must stuff I'll need to update the app loader (turns out we can't download Blob, so we have to download with base64 links instead)


Cap item greatness at 20

It was once thought, and I was a proponent of the idea, that the Loot contract implied Loot items were capable of achieving greatness above 20. The primary justification for this was the greatness distribution mechanic of the contract which had the effect of producing a pattern in which each item type only appears with a discrete greatness:
0, 3, 6, 9, 12, 15, 18 (i.e warhammer, divine robe)
1,4,7,10,13,16,19 (i.e divine gloves, divine slippers)
2,5,9,13,17,20 (i.e demon crown, demon husk)
As a result of the above pattern, none of the items in the first set (1/3rd of the items such as warhammer) even received a name prefix. Since the contract has those names already reserved, it was reasonably assumed the items are expected to increase in greatness and that those items simply haven't reached G19+ yet in the present time.
While I still believe the above is correct, the mistake was associating the Loot contract greatness distribution mechanic with the actual leveling of the item greatness. That is to say, I do not think it's reasonable or convenient to assume that Divine Robes can only appear in those greatness increments. Why they all happen to be in that pattern at this particular moment in time is an interesting opportunity for future canon but requiring the items to follow that pattern is not a helpful constraint for the Lootverse.
The above led to the thinking that Divine Robe would for example receive its reserved name prefix at G21 (the next discrete step for it). This is a mistake as the Loot contract makes it clear that the cap for greatness is 20 and I think it's imperative that those of us looking to build a cohesive world together respect this.
We can use this to our advantage in Loot Survivor by introducing the following few simple changes:

Cap items at greatness 20
When an item reaches greatness 20 and receives the +1 stat modifier it provides a permanent stat point for the Adventurer vs the temporary (only when equipped) stat boost provided by the item suffix at G15

From a game perspective, this introduces a strong incentive for Adventurers to level up multiple items to take advantage of the +1 permanent stat boost for each item they get to G20.
As part of this change, beast and obstacle leveling will be slightly reduced

this is included in Cairo1 rewrite