Allow users to select a quarter in Schedule of Classes

Currently, shows user the 'selected' option in websoc. Query all the options in websoc and allow users to choose from a dropdown.

^ have a dropdown to select other quarters here
- parse our current quarter from WebSoc + provide a few quarters before

https://github.com/icssc/peterportal-client/blob/28c39e6527f4766a3f8c8e60234c8a3f1c95c744/site/src/component/Schedule/Schedule.tsx
"/api/currentQuarter" https://github.com/icssc/peterportal-client/blob/master/api/src/controllers/schedule.ts
getCurrentQuarter() https://github.com/icssc/peterportal-client/blob/973a422bf7b621016d183919b41f2b5f298ec51b/api/src/helpers/currentQuarter.ts#L5


The qusetion of  /mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE

ImportError: /home/e706/anaconda3/envs/mmdetection/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE
my environment：
ubuntu18.04
python 3.7
cuda10.1
pytorch1.7.1
mmdet2.7.0
How to solve this error？ORZ

Please check the documentation about CUDA/Pytorch environment.

Did u solve this problem?

Did u solve this problem?

no did you?
pls help us @liuyanzhi1214 @ZwwWayne @yhcao6 @ray401

Facing the same error.. Any ideas/ workaround for this ?

Please check the documentation about CUDA/Pytorch environment.

I couldn't run this
python mmdet/utils/collect_env.py

mmcv is heavily relying on the versions of the PyTorch and Cuda installed. I had the same issue and noticed the installed mmcv is not for my current PyTorch version. You should reinstall it using: pip install --upgrade mmcv-full==${MMCV} -f https://download.openmmlab.com/mmcv/dist/cu${CUDA}/torch${PYTORCH}/index.html where you should replace or set ${MMCV}, ${CUDA}, and ${PYTORCH} with their versions. Pytorch and CUDA should be based on the installed versions. Also, ${CUDA} is in 101 for CUDA 10.1 and so on.

This worked! Thank you very much！

if yo use conda:
conda install -c conda-forge mmcv-full

I am facing the same error after doing that

if yo use conda:
conda install -c conda-forge mmcv-full

i SOLVED it!
my current: mmcv==1.3.15
it solved by: mim install mmcv-full == 1.3.15
so mmcv change to mmcv-full. yay!

Same here, refer to the document: https://mmcv.readthedocs.io/zh-cn/latest/get_started/installation.html
reinstall mmcv with proper version according to your torch and cuda version, and the problem solved.
Note: In MMCV-v2.x, mmcv-full is rename to mmcv.

i faced a similar error but it was originating from python3.8 which the installation guide had in the conda env creation line
this also caused no other mmcv<2.2.0 to be able to finish wheel building during installation
trying once more using python 3.7 and pytorch==1.13.1 fixed both issues


[HOW-TO] pass a dictionary to function parameters

Hey,
Im trying to pass my config dict to the function: https://github.com/raspberrypi/picamera2/blob/d07a49197622d636bd993a5bf1de321c259abf47/picamera2/request.py#L182
The problem is, that it doesn't work with the ton of combinations I tried.
The only working way is:
request.make_array("main")

Why not
request.make_array("main", config["format"])
or
request.make_array("main", config["format"], config["size"], config["stride"])

with a dict like config = {"format": "XRGB8888", "size": "1080,1920", "stride": "7680"}. Unfortunately the documentation under point 6.3/6.4 didn't help me.

As written in section 6.4 the request is the data returned from the camera. You cannot configure the camera afterwards when the request has already been returned to picamera2. Configure the camera the normal way before capturing a request.
The returned request contains all configured streams, hence in make_array you have to specify which stream you want, hece the request.make_array("main") function.
make array converts the returned buffer (one dimensional array with packed pixel data)  to a 2 dimensional arrray with unpacked pixel data.

Unfortunately, it is not the case that previously defined configurations are adopted without any problems.
picam2.configure(self.picam2.create_preview_configuration(main={"format": "XRGB8888", "size": (imgW, imgH)}))

I expected a 3-channel RGB array, but when I call request.make_array("main") I get a 4-channel RGBA array, thats my point. Another author explained me here (https://github.com/raspberrypi/picamera2/issues/619#issuecomment-1466087978) about the channels with PIL library.

@davidplowman  Hey could you take a lot for the array format problem.

Unfortunately, it is not the case that previously defined configurations are adopted without any problems.
picam2.configure(self.picam2.create_preview_configuration(main={"format": "XRGB8888", "size": (imgW, imgH)}))

I expected a 3-channel RGB array, but when I call request.make_array("main") I get a 4-channel RGBA array, thats my point. Another author explained me here (#619 (comment)) about the channels with PIL library.

Sorry, I didn't seem to spot this issue earlier.
I'm not quite clear what the problem is here - the requested format is XRGB8888 so you'll get back a 32-bit value (or 4 8-bit values) for each pixel, one of them being the "X" value (which of course looks much like an RGBA 32-bit pixel). Have I misunderstood what's happening, or are you able to add further explanation? Thanks.

The problem is, that in #619 you mentioned when I'm using XRGB8888 PIL will save it as RGB and not RGBA. And I expected when I configure the preview with this format and use the function make_arraythe RGB format will be maintained.
preview: XRGB8888 -> save result: RGB image (works)
use function: make_array("main") -> save result RGBA (this isn't what I want)

then I have now understood how it is meant. You are right, I can't get a correct format at all, because the format change is caused by PIL when saving. If I want a different format, I have to make a conversion myself after calling the function.


Add a license

I would like to use this library however I do not feel comfortable using it until it has a license. Well I would like to believe the author means his claim of public domain it cannot hold up in every country and furthermore the author could turn around and sue for copyright. So I would like to propose adding a license of some sort. If you would like to keep it basically public domain I would recommend https://creativecommons.org/choose/zero/ as a license. It basically is public domain however covers more countries and ensures developer safety. At the end of the day it is your choice obviously but I would like to propose this.

Done.


Panics if /usr/share/dict/words not found

Describe the bug
Running with no args on arch linux I don't have the "words" package installed. I get a panic. Not a big deal and easily worked around but a clear error message or even a small fallback list of words baked into the exe might be more graceful.
To Reproduce
Steps to reproduce the behavior:
Install typer on arch linux without the "words" package. Run it with no arguments.
Expected behavior
Fall back to some other word list, or print a simple error message.
Screenshots
❯ typer
panic: open /usr/share/dict/words: no such file or directory

goroutine 1 [running]:
github.com/tjarratt/babble.readAvailableDictionary()
        /home/plyons/go/pkg/mod/github.com/tjarratt/babble@v0.0.0-20191209142150-eecdf8c2339d/babble_unix.go:14 +0x9c
github.com/tjarratt/babble.NewBabbler(...)
        /home/plyons/go/pkg/mod/github.com/tjarratt/babble@v0.0.0-20191209142150-eecdf8c2339d/babble.go:22
github.com/maaslalani/typer/pkg/utility.RandomWords(0x14)
        /home/plyons/go/pkg/mod/github.com/maaslalani/typer@v0.0.0-20211105034731-4be028fe3127/pkg/utility/utility.go:19 +0x6f
github.com/maaslalani/typer/pkg/typer.FromRandom(0xc000010010, 0x6f95c8)
        /home/plyons/go/pkg/mod/github.com/maaslalani/typer@v0.0.0-20211105034731-4be028fe3127/pkg/typer/typer.go:54 +0x1e
github.com/maaslalani/typer/cmd.glob..func1(0x94d660, {0x6f6873, 0x0, 0x0})
        /home/plyons/go/pkg/mod/github.com/maaslalani/typer@v0.0.0-20211105034731-4be028fe3127/cmd/root.go:58 +0x26b
github.com/spf13/cobra.(*Command).execute(0x94d660, {0xc000012200, 0x0, 0x0})
        /home/plyons/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:856 +0x5f8
github.com/spf13/cobra.(*Command).ExecuteC(0x94d660)
        /home/plyons/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:960 +0x3ad
github.com/spf13/cobra.(*Command).Execute(...)
        /home/plyons/go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:897
github.com/maaslalani/typer/cmd.Execute()
        /home/plyons/go/pkg/mod/github.com/maaslalani/typer@v0.0.0-20211105034731-4be028fe3127/cmd/root.go:68 +0x25
main.main()
        /home/plyons/go/pkg/mod/github.com/maaslalani/typer@v0.0.0-20211105034731-4be028fe3127/main.go:6 +0x17

Desktop (please complete the following information):

OS: arch linux

Additional context
Add any other context about the problem here.

Hey! Thanks so much for filing this issue, totally agreed on the fallback list or nice error warning, always better than panics :)

Maybe this is a bug in the babble api though since it seems to panic and not return an error.

An issue could be opened in tjarratt/babble and while that is being resolved a manual check could be performed if /usr/share/dict/words exists on typer's end.

Hey! I've removed babble as a dependency in favour of more [common words])https://github.com/tyler-smith/go-bip39/blob/master/wordlists/english.go)
Hopefully, that should solve this issue, but please reopen if it doesn't.


Add break points for class declaration

class A extends B implements C {
  method() {}
}

now outputs
class A
  extends B
  implements C {
  method() {}
}

Fixes #147

Looks good. Not sure about it being indented the same as the contents of the class, but I don't know what other format we'd use. We can go with this for now.


d3-drag causing dragData to break in Android Chrome

So after some extensive testing I found that d3-drag is using preventDefault() without passive: true causes dragData to break chart.js chart. Ill try my best to explain, and hope we can find a solution.
Error Message

Here where it calls .on 'eventType' it should be able to pass a third option passive: true
const ChartJSdragDataPlugin = {   id: 'dragdata',   afterInit: function(chartInstance) {     if (chartInstance.options.dragData) {       select(chartInstance.chart.canvas).call(         drag().container(chartInstance.chart.canvas)           .on('start', getElement(chartInstance, chartInstance.options.onDragStart))           .on('drag', updateData(chartInstance, chartInstance.options.onDrag))           .on('end', dragEndCallback(chartInstance,chartInstance.options.onDragEnd))       )     }   } }
This is the offending code in d3-drag in noevent.js. Where it calls event.preventDefault();
import {event} from "d3-selection"; export function nopropagation() {   event.stopImmediatePropagation(); } export default function() {   event.preventDefault();   event.stopImmediatePropagation(); }
Here are some threads I found in github that might have solutions, but I havent been able to get anything to work.
https://github.com/d3/d3-selection/issues/113
https://github.com/d3/d3-drag/issues/35

Thanks @gspeach for already inspecting this! Did you get to check if the drag.touchable event works for desktop browsers as well? I will try and check your solution by the end of the week!
Best
Christoph

Just updated to d3-drag v2, which seems to alleviate this issue. Please re-open if it still persists!


crosslink position can not be modified

For example, if K is not in protein N-terminal, if it is acetylated, it cannot be used as crosslink site.

I think we would only want to allow XL sites to be modified in the case of C or N term modifications, right?

The problem was solved before. Check function CrosslinkSpectralMatch.GetPossibleCrosslinkerModSites.


bun: 0.1.2 -> 0.1.5

Description of changes
Bump version. Added support for the aarch64-linux platform.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1025

Please use a consistent hash format (preferably the one used originally in the file).

That does not matter to much. I always use what nix shows much but that you changed it already we can also keep it.

That does not matter to much. I always use what nix shows much but that you changed it already we can also keep it.

They used 2 different ones in their changes, bringing the total to 3. I think that's an issue.

Result of nixpkgs-review pr 182854 run on x86_64-linux 1

1 package built:

bun


Is it possible to use Layers in Application Specific Mappings?

Thank you for the amazing program. My question is Is it possible to use Layers in Application Specific Mappings? I tried writing the same overload layer syntax in my app.conf as my default.conf and I couldn't make layers work in Application Specific Mappings.
The reason I use this is that I want to map my space key to trigger layers. But I only want to do that in Neovim only. Is having layers for app.conf possible at all? Thank you very much!

As outlined in the man page, the syntax of app.conf is <layer>.<key> = <binding>. This works as long as <layer> is defined in your keyd config (e.g default.conf).
So you can do:
[neovim]

space = layer(<layer>)

as long as <layer> is an existing layer.


Should SomeStrEnum(str, Enum) require SLOT000?

Discussed in https://github.com/astral-sh/ruff/discussions/5747

Originally posted by jamesbraza July 13, 2023
Please see the below file with Python 3.10.10:
from enum import Enum

class SomeStrEnum(str, Enum):
    KEY = "value"

Running ruff==0.0.278 on this:
> ruff --isolated --select="SLOT" a.py
a.py:3:7: SLOT000 Subclasses of `str` should define `__slots__`
Found 1 error.

Running flake8-slots==0.1.5 with flake8==4.0.1 on this, there's no error:
> flake8 a.py

Fwiw, Python 3.11's built-in enum.StrEnum doesn't seem to define __slots__.
I am not sure if there should or should not be SLOT000 for this.  Looks like @qdegraaf added SLOT rule in ruff==0.0.273, so notifying him.
I am thinking either:

This is a false positive of SLOT000
Or should the built-in StrEnum define __slots__?

Looks like flake8-slots omits enums: https://github.com/python-formate/flake8-slots/blob/0b1ecb9076c6194f29265b7bfb904d63073bce08/flake8_slots/init.py#L102.

Don't know how I missed that. My bad. thanks for the quick fix @charliermarsh !

Yeah, we don't trace across base classes right now. You'd need to add Enum as a parent class to have it detected properly.

Yeah, we don't trace across base classes right now. You'd need to add Enum as a parent class to have it detected properly.

Thanks for the quick answer :)


Declaration of field visibility in angular components

In the example application I find quite a lot of public declarations of fields. I am more a friend of encapsulating everything until it is really needed to be exposed, so I am wondering, if there is a particular reasoning behind this? What is our best practice regarding this?

Do not know what exactly was the part of code that you looked at, but in case of component classes please be aware that AOT forces variables used in templates to be public (as far as I know). For all the rest I agree that traditional encapsulation rules should apply.

Protocol 26.07

Change field visibility to be as restrictive as possible (with respect to AOT), i.e. stick to private first.
We should annotate fields during investigation, why some fields might not be declared private as of AOT or some other technical reason. (provide guidance as a sample application)

Hi @tlueecke, @maybeec,
this issue is possibly solved with this PR https://github.com/oasp/my-thai-star/pull/30. May we close this?

This issue was solved with PR #30.

Going through code review I see some public injections for example in BookTableDialogComponent, I think this issue should be revisited and document the exception on the manual.


Package l4t-gstreamer

Description of changes
Added nvidia-l4t-gstreamer package, which provides several GStreamer plugins.
  In the future, we can see if its possible to build these from source using the repositories here . Additionally, we could add some gstreamer tests to the multimedia test.  Merging as-is, since this does seem to work.


Inference questions

Hi!
I'm wondering if you are going to share weights and inference script!!!
Thank you

Thanks for your interest in our work. We will share model weights and prediction code in the next few weeks.

Following this thread, also interested in weights I'd be able to use locally

Pre-trained weights are now available


Emeraldite Shards in Smeltery/Foundry

The item "Emeraldite Shards" from the mod "Oh the Biomes You'll Go" when melted into its molten emerald counterpart has 5 extra mb of fluid granted to it.
Emeraldite shards are able to be crafted natively in BYG into emeralds at a ratio of 5:1. The melting process grants 25 mb of fluid.
One gem (one emerald) is 100 mb of fluid natively in tconstruct. This means that to keep the ratio the same from emeraldite shards it would require 20 mb of fluid.
If this is intentional I would recommend changing the bonus off of emeraldite shards and to emeraldite ore. Perhaps it should give a result of 1-2 extra shards per ore.

After a quick check, this is occurring in the latest version.
I noticed that the original use for this material is for pendorite alloy, using 2 shards to craft. It would be necessary to alter the alloying recipe to 40 mb of emerald rather than 50 mb.
Sorry for missing this!

Sorry for the very late response on this. This is just how Tinkers' Construct works. GEM_SHARD is defined as 25mb. I would rather not redifine how this is set. This sounds like a balancing issue with BYG, not TCIntegrations/TCon. If I have to do something special for every mod that does some weird math, I'd go crazy, as they end up fixing it and I then have to revert the change.

No fret, this is a reasonable position to take. Thankfully your coding is amazing and I was able to work around it via datapack super easily.

@sheshells Thank you for the compliment also, very much appreciated :100:

Sorry for the very late response on this. This is just how Tinkers' Construct works. GEM_SHARD is defined as 25mb. I would rather not redifine how this is set. This sounds like a balancing issue with BYG, not TCIntegrations/TCon. If I have to do something special for every mod that does some weird math, I'd go crazy, as they end up fixing it and I then have to revert the change.

i feel like it's worth the exception in this case, given that the only item with the tag is BYG's shard. You could even keep the tag for other Shards and just set the item in the recipe for BYG's.


fastlane snapshot fails in XCode 9 beta 2

New Issue Checklist

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

Issue Description
I am getting this error when I try to use fastlane snapshot: No such file or directory @ rb_sysopen - /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Logs/Test/Attachments/Screenshot_44966137-D5A3-4DAE-9151-97EC8A873D0B.png. Looking at that Attachments directory, it exists but is empty.
Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

iMac:manabi-reader alex$ fastlane snapshot
[12:30:55]: Successfully loaded '/Users/alex/src/manabi-reader/Snapfile' 📄

+-----------------+-----------------+
| Detected Values from './Snapfile' |
+-----------------+-----------------+
| devices         | ["iPhone 6"]    |
| languages       | ["en-US"]       |
| scheme          | ManabiReader    |
+-----------------+-----------------+

[12:30:55]: $ xcodebuild -list -project ./ManabiReader.xcodeproj
[12:30:55]: $ xcodebuild -showBuildSettings -scheme ManabiReader -project ./ManabiReader.xcodeproj

+----------------------------+--------------------------------------+
|                    Summary for snapshot 2.41.0                    |
+----------------------------+--------------------------------------+
| devices                    | ["iPhone 6"]                         |
| languages                  | ["en-US"]                            |
| scheme                     | ManabiReader                         |
| project                    | ./ManabiReader.xcodeproj             |
| output_directory           | /Users/alex/src/manabi-reader/fastl  |
|                            | ane/screenshots                      |
| launch_arguments           | [""]                                 |
| output_simulator_logs      | false                                |
| skip_open_summary          | false                                |
| skip_helper_version_check  | false                                |
| clear_previous_screenshots | false                                |
| reinstall_app              | false                                |
| erase_simulator            | false                                |
| localize_simulator         | false                                |
| app_identifier             | io.manabi.ManabiReader               |
| buildlog_path              | ~/Library/Logs/snapshot              |
| clean                      | false                                |
| number_of_retries          | 1                                    |
| stop_after_first_error     | false                                |
| xcode_path                 | /Applications/Xcode-beta.app         |
+----------------------------+--------------------------------------+

[12:30:57]: Building and running project - this might take some time...
[12:30:57]: snapshot run 1 of 1
[12:31:01]: Patching '/Users/alex/Library/Preferences/com.apple.iphonesimulator.plist' to scale simulator to 100%
[12:31:02]: ------------------------
[12:31:02]: --- iPhone 6 - en-US ---
[12:31:02]: ------------------------
[12:31:02]: $ set -o pipefail && xcodebuild -scheme ManabiReader -project ./ManabiReader.xcodeproj -derivedDataPath '/var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd' -destination 'platform=iOS Simulator,id=0B87F5E6-5578-4EC9-B1C8-7DE5F8D391B1,OS=11.0' FASTLANE_SNAPSHOT=YES build test | tee /Users/alex/Library/Logs/snapshot/ManabiReader-ManabiReader.log | xcpretty
[12:31:02]: ▸ Loading...
[12:31:03]: ▸ Building mecab/mecab [Debug]
[12:31:03]: ▸ Check Dependencies
[12:31:03]: ▸ Compiling dictionary_compiler.cpp
[12:31:04]: ▸ Compiling learner_tagger.cpp
[12:31:04]: ▸ Compiling feature_index.cpp
[12:31:04]: ▸ Compiling mecab-dict-gen.cpp
[12:31:04]: ▸ Compiling eval.cpp
[12:31:04]: ▸ Compiling utils.cpp
[12:31:04]: ▸ Compiling param.cpp
[12:31:04]: ▸ Compiling learner.cpp
[12:31:05]: ▸ Compiling mecab.cpp
[12:31:05]: ▸ Compiling iconv_utils.cpp
[12:31:05]: ▸ Compiling libmecab.cpp
[12:31:05]: ▸ Compiling tokenizer.cpp
[12:31:05]: ▸ Compiling writer.cpp
[12:31:05]: ▸ Compiling dictionary_rewriter.cpp
[12:31:05]: ▸ Compiling dictionary.cpp
[12:31:06]: ▸ Compiling string_buffer.cpp
[12:31:06]: ▸ Compiling viterbi.cpp
[12:31:06]: ▸ Compiling tagger.cpp
[12:31:06]: ▸ Compiling context_id.cpp
[12:31:06]: ▸ Compiling mecab-system-eval.cpp
[12:31:06]: ▸ Compiling char_property.cpp
[12:31:07]: ▸ Compiling mecab-cost-train.cpp
[12:31:07]: ▸ Compiling lbfgs.cpp
[12:31:07]: ▸ Compiling nbest_generator.cpp
[12:31:07]: ▸ Compiling dictionary_generator.cpp
[12:31:07]: ▸ Compiling mecab-test-gen.cpp
[12:31:07]: ▸ Compiling mecab-dict-index.cpp
[12:31:07]: ▸ Compiling connector.cpp
[12:31:07]: ▸ Building library libmecab.a
[12:31:07]: ▸ Building ManabiReader/ManabiReader [Debug]
[12:31:07]: ▸ Check Dependencies
[12:31:09]: ▸ Compiling JapaneseSegmentData.swift
[12:31:12]: ▸ Compiling HomeTableViewController.swift
[12:31:12]: ▸ Compiling FeedSpecificContentTransformations.swift
[12:31:12]: ▸ Compiling ManabiReadabilityViewController.swift
[12:31:12]: ▸ Compiling HistoryRecord.swift
[12:31:12]: ▸ Compiling ArticleListViewController.swift
[12:31:12]: ▸ Compiling LookupPopoverBackgroundView.swift
[12:31:12]: ▸ Compiling Bookmark.swift
[12:31:12]: ▸ Compiling RemoteConfiguration.swift
[12:31:12]: ▸ Compiling BookmarkController.swift
[12:31:12]: ▸ Compiling CategoriesController.swift
[12:31:12]: ▸ Compiling CategoryTableCell.swift
[12:31:12]: ▸ Compiling AppDelegate.swift
[12:31:12]: ▸ Compiling RubyLabel.swift
[12:31:12]: ▸ Compiling LookupViewController.swift
[12:31:13]: ▸ Compiling BookmarksViewController.swift
[12:31:13]: ▸ Compiling UIButton+Styles.swift
[12:31:13]: ▸ Compiling JMDictRealmPopulator.swift
[12:31:13]: ▸ Compiling HomeTableCustomURLCell.swift
[12:31:13]: ▸ Compiling Feed.swift
[12:31:13]: ▸ Compiling BookmarksAndHistoryViewController.swift
[12:31:13]: ▸ Compiling RubyText.swift
[12:31:13]: ▸ Compiling CategoryTableViewController.swift
[12:31:13]: ▸ Compiling UIFont+Manabi.swift
[12:31:13]: ▸ Compiling FeedTableCell.swift
[12:31:13]: ▸ Compiling HTMLImageFinder.swift
[12:31:14]: ▸ Compiling String+Capitalizatoin.swift
[12:31:14]: ▸ Compiling FeedEntry.swift
[12:31:14]: ▸ Compiling AlertConveniences.swift
[12:31:14]: ▸ Compiling UIColor+Manabi.swift
[12:31:14]: ▸ Compiling FeedTableViewController.swift
[12:31:14]: ▸ Compiling Category.swift
[12:31:14]: ▸ Compiling ReaderViewController.swift
[12:31:14]: ▸ Compiling HistoryRecordController.swift
[12:31:14]: ▸ Compiling JMDictEntry.swift
[12:31:14]: ▸ Compiling OnboardingTips.swift
[12:31:14]: ▸ Compiling JMDict.swift
[12:31:15]: ▸ Compiling String+FindReplace.swift
[12:31:15]: ▸ Compiling HomeTableCategoryCell.swift
[12:31:15]: ▸ Compiling ArticleListCell.swift
[12:31:15]: ▸ Compiling HistoryViewController.swift
[12:31:15]: ▸ Compiling ManabiReadabilityContentProcessor.swift
[12:31:15]: ▸ Compiling MeCabNode.m
[12:31:16]: ▸ Compiling MeCabUtil.m
[12:31:17]: ▸ Linking ManabiReader
[12:31:17]: ▸ Copying Carthage/Build/iOS/Realm.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/Cache.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/RealmSwift.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/Yams.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/Result.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/SwiftHash.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/Muon.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/CDAlertView.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/JASON.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/SwiftSoup.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/UAProgressView.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/SDWebImage.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/Shimmer.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/SwiftReadability.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/FeedKit.framework
[12:31:17]: ▸ Copying Carthage/Build/iOS/SnapKit.framework
[12:31:17]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/Realm.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/Cache.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/RealmSwift.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/Yams.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/Result.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/SwiftHash.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/Muon.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/CDAlertView.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/JASON.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/SwiftSoup.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/UAProgressView.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/SDWebImage.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/Shimmer.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/SwiftReadability.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/FeedKit.framework
[12:31:18]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app/Frameworks/SnapKit.framework
[12:31:18]: ▸ Copying ManabiReader/Klee.ttc
[12:31:18]: ▸ Copying ManabiReader/jmdict.realm
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-HeavyItalic.ttf
[12:31:18]: ▸ Copying ManabiReader/jquery-3.2.1.min.js
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/rewrite.def
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/unk.dic
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/dicrc
[12:31:18]: ▸ Copying Settings.bundle
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-Bold.ttf
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-Light.ttf
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-Italic.ttf
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/sys.dic
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-BoldItalic.ttf
[12:31:18]: ▸ Copying ManabiReader/manabi_readability.js
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-BlackItalic.ttf
[12:31:18]: ▸ Copying ManabiReader/manabi_readability.css
[12:31:18]: ▸ Copying Vendor/mecab-ios/libobjc/mecabrc
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-Heavy.ttf
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/pos-id.def
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/right-id.def
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/left-id.def
[12:31:18]: ▸ Copying ManabiReader/manabi-reader.yml
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/matrix.bin
[12:31:18]: ▸ Copying ManabiReader/sample.html
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-Regular.ttf
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-Black.ttf
[12:31:18]: ▸ Copying Vendor/mecab-ios/ipadic/char.bin
[12:31:18]: ▸ Copying ManabiReader/Lato/Lato-LightItalic.ttf
[12:31:18]: ▸ Compiling LaunchScreen.storyboard
[12:31:19]: ▸ Compiling Main.storyboard
[12:31:20]: ▸ Processing Info.plist
[12:31:20]: ▸ Generating 'ManabiReader.app.dSYM'
[12:31:21]: ▸ Running script 'Run Script'
[12:31:22]: ▸ Running script 'Run Script'
[12:31:23]: Running Tests: ▸ Touching ManabiReader.app
[12:31:23]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReader.app
[12:31:26]: ▸ Build Succeeded
[12:31:26]: ▸ 2017-06-25 12:31:26.343 xcodebuild[91160:13360981] [MT] IDETestOperationsObserverDebug: (A4B5AFE9-C8C8-4FB1-934B-06ED04A6CFE0) Beginning test session ManabiReaderScreenshotUITests-A4B5AFE9-C8C8-4FB1-934B-06ED04A6CFE0 at 2017-06-25 12:31:26.343 with Xcode 9M137d on target <DVTiPhoneSimulator: 0x7f8b3cb23e60> {
[12:31:26]: ▸ SimDevice: iPhone 6 (0B87F5E6-5578-4EC9-B1C8-7DE5F8D391B1, iOS 11.0, Booted)
[12:31:26]: ▸ } (11.0 (15A5304f))
[12:31:26]: ▸ 2017-06-25 12:31:26.343 xcodebuild[91160:13361335]  IDETestOperationsObserverDebug: Writing diagnostic log for test session to:
[12:31:26]: ▸ /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/com.apple.dt.XCTest/IDETestRunSession-A417359B-69F0-498A-9011-014D397E8CDF/ManabiReaderScreenshotUITests-80C27ADE-5098-40CE-91A2-F6BAED1E16E7/Session-ManabiReaderScreenshotUITests-2017-06-25_123126-6FL4hF.log
[12:31:26]: ▸ Building mecab/mecab [Debug]
[12:31:26]: ▸ Check Dependencies
[12:31:26]: ▸ Building ManabiReader/ManabiReader [Debug]
[12:31:26]: ▸ Check Dependencies
[12:31:26]: ▸ Running script 'Run Script'
[12:31:28]: ▸ Running script 'Run Script'
[12:31:28]: ▸ Building ManabiReader/ManabiReaderScreenshotUITests [Debug]
[12:31:28]: ▸ Check Dependencies
[12:31:28]: ▸ Processing Info.plist
[12:31:28]: ▸ Copying /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework
[12:31:28]: ▸ Copying /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks/XCTest.framework
[12:31:28]: ▸ Preprocessing /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents/XCTRunner.app/Info.plist
[12:31:28]: ▸ Compiling ManabiReaderScreenshotUITests.swift
[12:31:31]: ▸ Compiling SnapshotHelper.swift
[12:31:32]: ▸ Linking ManabiReaderScreenshotUITests
[12:31:33]: Running Tests: ▸ Touching ManabiReaderScreenshotUITests.xctest
[12:31:33]: ▸ Signing /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Build/Products/Debug-iphonesimulator/ManabiReaderScreenshotUITests-Runner.app/PlugIns/ManabiReaderScreenshotUITests.xctest
[12:31:51]: ▸ Test Succeeded
[12:31:51]: ▸ All tests
[12:31:51]: ▸ Test Suite ManabiReaderScreenshotUITests.xctest started
[12:31:51]: ▸ ManabiReaderScreenshotUITests
[12:31:51]: ▸ ✓ testScreenshots (12.426 seconds)
[12:31:51]: ▸ 	 Executed 1 test, with 0 failures (0 unexpected) in 12.426 (12.427) seconds
[12:31:51]: ▸
[12:31:51]: Collecting screenshots...
[12:31:51]: Found 2 screenshots...
[12:31:51]: Copying '/Users/alex/src/manabi-reader/fastlane/screenshots/en-US/iPhone6-0Home-d41d8cd98f00b204e9800998ecf8427e.png'...
[12:31:51]: No such file or directory @ rb_sysopen - /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Logs/Test/Attachments/Screenshot_7FE0A303-7FDA-400D-BFBC-472ED8602B43.png
[12:31:51]: Tests failed, re-trying 1 out of 2 times
[12:31:55]: Patching '/Users/alex/Library/Preferences/com.apple.iphonesimulator.plist' to scale simulator to 100%
[12:31:56]: ------------------------
[12:31:56]: --- iPhone 6 - en-US ---
[12:31:56]: ------------------------
[12:31:56]: $ set -o pipefail && xcodebuild -scheme ManabiReader -project ./ManabiReader.xcodeproj -derivedDataPath '/var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd' -destination 'platform=iOS Simulator,id=0B87F5E6-5578-4EC9-B1C8-7DE5F8D391B1,OS=11.0' FASTLANE_SNAPSHOT=YES build test | tee /Users/alex/Library/Logs/snapshot/ManabiReader-ManabiReader.log | xcpretty
[12:31:56]: ▸ Loading...
[12:31:57]: ▸ Building mecab/mecab [Debug]
[12:31:57]: ▸ Check Dependencies
[12:31:57]: ▸ Building ManabiReader/ManabiReader [Debug]
[12:31:57]: ▸ Check Dependencies
[12:31:57]: ▸ Running script 'Run Script'
[12:31:59]: ▸ Running script 'Run Script'
[12:31:59]: ▸ Build Succeeded
[12:31:59]: ▸ 2017-06-25 12:31:59.326 xcodebuild[91752:13367350] [MT] IDETestOperationsObserverDebug: (F010A5EC-C872-4A94-9B6C-8A58803725F8) Beginning test session ManabiReaderScreenshotUITests-F010A5EC-C872-4A94-9B6C-8A58803725F8 at 2017-06-25 12:31:59.326 with Xcode 9M137d on target <DVTiPhoneSimulator: 0x7f9963ca2fe0> {
[12:31:59]: ▸ SimDevice: iPhone 6 (0B87F5E6-5578-4EC9-B1C8-7DE5F8D391B1, iOS 11.0, Booted)
[12:31:59]: ▸ } (11.0 (15A5304f))
[12:31:59]: ▸ 2017-06-25 12:31:59.326 xcodebuild[91752:13367475]  IDETestOperationsObserverDebug: Writing diagnostic log for test session to:
[12:31:59]: ▸ /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/com.apple.dt.XCTest/IDETestRunSession-8A1D34A8-A98A-4EEA-868E-0088885E3042/ManabiReaderScreenshotUITests-64A67D79-F4FC-432D-8CDA-729F62006A6D/Session-ManabiReaderScreenshotUITests-2017-06-25_123159-tQZGhM.log
[12:31:59]: ▸ Building mecab/mecab [Debug]
[12:31:59]: ▸ Check Dependencies
[12:31:59]: ▸ Building ManabiReader/ManabiReader [Debug]
[12:31:59]: ▸ Check Dependencies
[12:31:59]: ▸ Running script 'Run Script'
[12:32:01]: ▸ Running script 'Run Script'
[12:32:01]: ▸ Building ManabiReader/ManabiReaderScreenshotUITests [Debug]
[12:32:01]: ▸ Check Dependencies
[12:32:23]: ▸ Test Succeeded
[12:32:23]: ▸ All tests
[12:32:23]: ▸ Test Suite ManabiReaderScreenshotUITests.xctest started
[12:32:23]: ▸ ManabiReaderScreenshotUITests
[12:32:23]: ▸ ✓ testScreenshots (12.487 seconds)
[12:32:23]: ▸ 	 Executed 1 test, with 0 failures (0 unexpected) in 12.487 (12.488) seconds
[12:32:23]: ▸
[12:32:23]: Collecting screenshots...
[12:32:23]: Found 2 screenshots...
[12:32:23]: Copying '/Users/alex/src/manabi-reader/fastlane/screenshots/en-US/iPhone6-0Home-d41d8cd98f00b204e9800998ecf8427e.png'...
[12:32:23]: No such file or directory @ rb_sysopen - /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Logs/Test/Attachments/Screenshot_44966137-D5A3-4DAE-9151-97EC8A873D0B.png

+----------+-------+
| snapshot results |
+----------+-------+
| Device   | en-US |
+----------+-------+
| iPhone 6 |  ❌   |
+----------+-------+

[!] No such file or directory @ rb_sysopen - /var/folders/d5/n8dq_3l90yj6_vdkbw05xgcw0000gn/T/snapshot_derived20170625-91091-l3cipd/Logs/Test/Attachments/Screenshot_44966137-D5A3-4DAE-9151-97EC8A873D0B.png

Environment
Please run fastlane env and copy the output below. This will help us help you :+1:
If you used --capture_output option please remove this block - as it is already included there.
<details><summary>✅ fastlane environment ✅</summary>

### Stack

| Key                         | Value                                            |
| --------------------------- | ------------------------------------------------ |
| OS                          | 10.12.5                                          |
| Ruby                        | 2.2.4                                            |
| Bundler?                    | false                                            |
| Git                         | git version 2.13.1                               |
| Installation Source         | ~/.fastlane/bin/bundle/bin/fastlane              |
| Host                        | Mac OS X 10.12.5 (16F2073)                       |
| Ruby Lib Dir                | ~/.fastlane/bin/bundle/lib                       |
| OpenSSL Version             | OpenSSL 1.0.2g  1 Mar 2016                       |
| Is contained                | false                                            |
| Is homebrew                 | true                                             |
| Is installed via Fabric.app | false                                            |
| Xcode Path                  | /Applications/Xcode-beta.app/Contents/Developer/ |
| Xcode Version               | 9.0                                              |

### System Locale

| Variable | Value       |   |
| -------- | ----------- | - |
| LANG     | en_US.UTF-8 | ✅ |
| LC_ALL   | en_US.UTF-8 | ✅ |
| LANGUAGE | en_US.UTF-8 | ✅ |

### fastlane files:

<details><summary>`./fastlane/Fastfile`</summary>

```ruby
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://docs.fastlane.tools/actions
# 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.41.0"

default_platform :ios

platform :ios do
  before_all do
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."

    carthage
  end

  desc "Runs all the tests"
  lane :test do
    scan
  end

  desc "Submit a new Beta Build to Apple TestFlight"
  desc "This will also make sure the profile is up to date"
  lane :beta do
    # match(type: "appstore") # more information: https://codesigning.guide
    gym(scheme: "ManabiReader") # Build your app - more options available
    pilot

    # sh "your_script.sh"
    # You can also use other beta testing services here (run `fastlane actions`)
  end

  desc "Deploy a new version to the App Store"
  lane :release do
    # match(type: "appstore")
    snapshot
    gym(scheme: "ManabiReader") # Build your app - more options available
    deliver(force: true)
    frameit
  end

  # You can define as many lanes as you want

  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://docs.fastlane.tools/actions

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

`./fastlane/Appfile`
app_identifier "io.manabi.ManabiReader" # The bundle identifier of your app
apple_id<EMAIL_ADDRESS># Your Apple email address

team_id "8Y769YTXHF" # Developer Portal Team ID

# 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.41.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

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
1.11.1

xcpretty
0.2.6

terminal-notifier
1.7.1

unicode-display_width
1.1.3

terminal-table
1.7.3

plist
3.2.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

declarative
0.0.9

declarative-option
0.1.0

representable
3.0.4

retriable
2.1.0

mime-types-data
3.2016.0521

mime-types
3.1

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.12.0

json
1.8.1

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.0

bundler
1.14.6

faraday_middleware
<IP_ADDRESS>

generated on: 2017-06-25

```

Thanks @aehlke, Xcode 9 is definitely on our radar, we'd love to get this updated soon. I think we'll be able to pull in work related to Xcode 9 soon 👍

Any progress? For iMessage apps, the only way to run UI Tests in Messages is with Xcode 9

Hi everyone - we are currently working on getting Xcode 9 support for snapshot and other tools, though, in the interest of full transparency, because Xcode 9 is still in beta, we are having to prioritize some work above that at the moment. Here is the work-in-progress PR that is going to add support for the new screenshots API in Xcode 9 as well as simultaneous executions of snapshot in different simulators. Definitely we are hoping to have this wrapped up in the near future - thank you for your patience! 🚀  😄  🚀

I'm taking a look at this now 🚀

As a temporary workaround, you can uncheck

It seems like by default this is now checked.

@mattbarker016 I got the same problem as you, have you figured a better way rather than the way you posted above?

I haven't touched it, @ikzjfr0. Did the above branch fix the issue at all?

@mattbarker016, i have the issue too🤕, above branch doesn't fix it

@mattbarker016
my solution here is to update waitForLoadingIndicatorToDisappear with following one
class func waitForLoadingIndicatorToDisappear() {
        #if os(tvOS)
            return
        #endif

        let networkConnectionInProgressElement = XCUIApplication().statusBars.otherElements["Network connection in progress"]
        while (networkConnectionInProgressElement.exists) {
            sleep(1)
            print("Waiting for loading indicator to disappear...")
        }
    }

It's not a perfect solution since I don't exclude two additional cases: ["GeofenceLocationTrackingOn", "StandardLocationTrackingOn"]. However, it does work in my project


fix(ripple): animation speed

GitHub Issue: closes #627
PR Type
What kind of change does this PR introduce?

Bugfix

Description
Fix an issue where the rippling animation of Ripple control were too fast to be observed.
PR Checklist
Please check if your PR fulfills the following requirements:

Commits must be following the Conventional Commits specification
[x] Tested UWP
[x] Tested iOS
[x] Tested Android
[x] Tested WASM
[ ] Tested MacOS
[x] Contains No breaking changes

If the pull request contains breaking changes, commit message must contain a detailed description of the action to take for the consumer of this library. As explained by the Conventional Commits specification

Other information
RippleSizeMultiplier is reduced to 2 from 8, as it also is a multiplier for how fast the ripple is travelling if we only consider the visible area, not whats outside. The ScaleXY animation is using an EaseIn function, so that the bulk of it will happen in the 2nd half of the duration. The FillBehavior has been reverted back to the default HoldEnd, so the ellipse stays expanded for the full duration of the entire animation (225+150ms), instead of immediately reverting to scale-0 when the expansion ends (at 225ms).

The ripple size didn't need to be changed from the 8-times the size of the control?

Heads up @jeromelaban  ! If we can merge this :)


Type guards can't deal with unknown type as default

We can't know the failures of type inference in type guards because of this problem. Maybe a is any[] should also return unknown[].

TypeScript Version:  3.7.x-dev.20200410

Search Terms:
Code
declare function f(a: any): a is any[];
declare function g(a: any): a is unknown[];
declare const a: readonly number[];

f(a) && a; // any[]
g(a) && a; // not unknown[]

Expected behavior:
a's type narrowed by g is unknown[].
Actual behavior:
a's type narrowed by g is readonly number[] & unknown[].
Playground Link: https://www.typescriptlang.org/play/?ts=3.9.0-dev.20200410&ssl=1&ssc=1&pln=6&pc=11#code/CYUwxgNghgTiAEAzArgOzAFwJYHtVIAooAueKVATwEpSp4sBnMygbQF0BuAKFElgRTpseeAHMitSjTL0maANaocAd1TtuvaHHhg8DDGVJwowPBArxUyALYAjEDHVcuiIlXgAyD2W7io7rx8gA
Related Issues: #17002

This follows from the rules of subtype reduction.

Then can you treat the issue as a feature request supporting unknown default type with type guards when it's possible? Always posting two issues is trouble.

@RyanCavanaugh Hey

@RyanCavanaugh HeyHey

@falsandtru sup?

Also #37999. Your inconsistent (and unexplained) response is very murkiness. Explain the valid reason when closing the issue or changing the response. How explain #37999.

@RyanCavanaugh Also #37999. Your inconsistent (and unexplained) response is very murkiness. Explain the valid reason when closing the issue or changing the response. How explain #37999.


Variable support

Currently, only canvases are supported for user-defined variables (in the form of intermediate canvases). Numbers and colors should get support for user-defined variables as well.

Added in 5d3dca1d152a16200de51b66ba2adb50b8c72f31


Update nan dependency for node 10 compatibility (WIP)

Will post again once we finish running our tests.

Tests completed, build works.

Thanks.


Fix: realtime doesn't get correct endpoint when using a custom provider

When you create a realtime component using a custom provider (e.g. using a different region), the component is all correctly created, but. the output is incorrect / cannot be found. This is because the function iot.getEndpointOutput(), was missing the parent pulumi options. This fixes that

@thdxr any chance we can get this reviewed & released?

Thanks @nicholasgubbins!
Will be in the next release.


[$250] Workspace - Error message for invalid phone number invite disappears fast

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/11784
Action Performed:

Launch the app and login
Create 5 workspaces
Click on workspaces -> select a workspace -> manage members -> Turn on airplane mode
Invite user +25857527444 (this is an incorrect user and should throw error). Close settings.
Go back to online. Confirm you see error red dot on profile icon, click it.

Expected Result:
Confirm you see error red dot next to the avatars and the UI still looks good.
Actual Result:
Error message disappears too fast
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/198707896-8ce84da7-5aa1-43c5-8ba4-a34edc53635c.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Internal job posting - https://www.upwork.com/ab/applicants/1589957236115976192/job-details
External job posting - https://www.upwork.com/jobs/~018617c742041dfcfc

Proposal
diff --git a/src/pages/workspace/WorkspaceMembersPage.js b/src/pages/workspace/WorkspaceMembersPage.js
index 477dc02f9..9a07e9a7a 100644
--- a/src/pages/workspace/WorkspaceMembersPage.js
+++ b/src/pages/workspace/WorkspaceMembersPage.js
@@ -73,7 +73,7 @@ class WorkspaceMembersPage extends React.Component {
     }

     componentDidMount() {
-        const clientMemberEmails = _.keys(this.props.policyMemberList);
+        const clientMemberEmails = _.keys(_.pick(this.props.policyMemberList, m => m.role));
         Policy.openWorkspaceMembersPage(this.props.route.params.policyID, clientMemberEmails);
     }

@@ -83,7 +83,7 @@ class WorkspaceMembersPage extends React.Component {
             return;
         }

-        const clientMemberEmails = _.keys(this.props.policyMemberList);
+        const clientMemberEmails = _.keys(_.pick(this.props.policyMemberList, m => m.role));
         Policy.openWorkspaceMembersPage(this.props.route.params.policyID, clientMemberEmails);
     }

Explanation
Passing the whole clientMemberEmails object may contain keys which their corresponding values are just for show (ie. errors, pendingAction). When those keys get sent to the api, the api returns the found values and since they does not exists (as i said they are just for show) the api returns null. Then when merging, those "for show only" members get lost.
The proposed fix is only to pass members that have the "role" property (or not to pass those who have "pendingAction" and/or "errors" properties). This way the merging will be done on real members that exists and keep other for show only member untouched.
Pros/Cons?
The errors (red dot) will stay even after refreshing the page, it will only be dismissed if you close it manually or try to invite new members. IMHO, I think this is a desired behaviour, since you don't want to miss such errors anyway.
Action Performed
The reported actions are redundant (you don't need 5 workspaces). You can reproduce either by going offline/online or just closing the drawer and opening again.
https://user-images.githubusercontent.com/16493223/200685791-917f1c5c-215b-460a-9633-fe2b61c8fc48.mp4

@s77rt's proposal looks good to me!

The proposed fix is only to pass members that have the "role" property (or not to pass those who have "pendingAction" and/or "errors" properties).

I'm leaning more toward the first approach, since all accounts have the role property, while if we decide to filter out only items with pendingAction and errors properties, issues can arise in the future in case we add items with the new properties.

The reported actions are redundant (you don't need 5 workspaces). You can reproduce either by going offline/online or just closing the drawer and opening again.

Can confirm this, the issue can be reproduced even while online and having only one workspace
🎀👀🎀 C+ reviewed!
cc: @jasperhuangg

@jasperhuangg, what do you think about @s77rt's proposal?

Applied on Upwork.
PR ready

The PR for this issue is on staging! https://github.com/Expensify/App/pull/12746

@flaviadefaria I think https://github.com/Expensify/App/pull/10395 is the source of this bug.
Taking a look at the PR it doesn't include offline cases in its testing steps, which would have caught this before it was merged and deployed.

Not overdue, PR was deployed to staging 4 days ago

Hey @flaviadefaria were we able to get payment sorted out? Looks like it was scheduled for 2022-11-29, so I just wanted to double-check.

I was checking on this with @mountiny as I didn't see the PR hit production. Got everything clarified and will process the payment now.

@s77rt I got your message in Upwork. You do qualify for the 50% bonus, but this is added upon payment so first I need you to accept the job.

@s77rt I got your message in Upwork. You do qualify for the 50% bonus, but this is added upon payment so first I need you to accept the job so that I can proceed to payment.

Isn't the bonus applies to C+ also?

@flaviadefaria Accepted

I'm not sure @eVoloshchak I'll double-check that for you.

I just paid you both and the 50% bonus 👍


Collection variables: getNativeVariableTreeNode erring

The following
TreeNode<VariableDef> childVarsTree = collectionVarEntityDef.getNativeVariableTreeNode(getReferenceMetadata().getVariable(collectionVar).orElseThrow());

causes an error in the mbio apps because getReferenceMetadata().getVariable(collectionVar) returns Optional.empty.
Possibly helpful,
TreeNode<VariableDef> childVarsTree = collectionVarEntityDef.getNativeVariableTreeNode(collectionVar);

still works but it was replaced because it was causing other errors.

closing. Fixed with #157


Failed to compile project with error "Failure to find org.jacorb:jacorb:jar:2.3.2.jbossorg-4"

Prerequisites
Please check the FAQ, and search existing issues for similar questions before creating a new issue.YOU MAY DELETE THIS PREREQUISITES SECTION.

[x] I have checked the FAQ, and issues and found no answer.

I've accquired these lost jars from https://mvnrepository.com/artifact/org.jacorb/jacorb/2.3.2.jbossorg-4.
[/home/XXXXX/repository_184/org/jacorb/jacorb/2.3.2.jbossorg-4]#ls
jacorb-2.3.2.jbossorg-4.jar  jacorb-2.3.2.jbossorg-4.jar.lastUpdated  jacorb-2.3.2.jbossorg-4.jar.sha1  jacorb-2.3.2.jbossorg-4.pom  jacorb-2.3.2.jbossorg-4.pom.lastUpdated  jacorb-2.3.2.jbossorg-4.pom.sha1  _remote.repositories
[/home/XXXXX/repository_184/org/jacorb/jacorb/2.3.2.jbossorg-4]#pwd
/home/ZCIPClient/repository_184/org/jacorb/jacorb/2.3.2.jbossorg-4

But the following error will still occur in linux envrionment.
I'ved copied those jars to the right location, but maven still generte files with the suffix of lastUpdated.
[ERROR] Failed to execute goal on project pinpoint-jboss-plugin: Could not resolve dependencies for project com.navercorp.pinpoint:pinpoint-jboss-plugin:jar:2.1.1-SNAPSHOT: Failure to find org.jacorb:jacorb:jar:2.3.2.jbossorg-4 in http://maven.aliyun.com/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-aliyun has elapsed or updates are forced -> [Help 1]

On my windows pc, the above error still occurr but the build is successfully.

Would you check pom.xml file of your pinpoint project?
Because Pinpoint use Maven to build and test project also pinpoint plugins have each pom.xml file.
pinpoint-jboss-plugin use pom.xml like this link but you downloaded dependency files manually.
so, I recommend you checking again pom.xml setting

Would you check pom.xml file of your pinpoint project?
Because Pinpoint use Maven to build and test project also pinpoint plugins have each pom.xml file.
pinpoint-jboss-plugin use pom.xml like this link but you downloaded dependency files manually.
so, I recommend you checking again pom.xml setting
additionally, check jboss plugin configuration too
https://github.com/pinpoint-apm/pinpoint/tree/master/plugins/jboss

Really appreciate your help :heart:. In the link you provided https://github.com/pinpoint-apm/pinpoint/blob/master/plugins/jboss/pom.xml, i found
    <repositories>
        <repository>
            <id>bintray</id>
            <name>bintray</name>
            <url>https://jcenter.bintray.com</url>
        </repository>
        <repository>
            <id>jboss-3rd-party-releases</id>
            <name>Jboss Third Party Repository</name>
            <url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/</url>
        </repository>
    </repositories>

So i add the following config to my maven configuration file settings.xml
  <mirrors>
    ...............

    <mirror>
        <id>bintray</id>
        <mirrorOf>bintray</mirrorOf>
        <name>bintray</name>
        <url>https://jcenter.bintray.com</url>
    </mirror>
    <mirror>
        <id>jboss-3rd-party-releases</id>
        <mirrorOf>jboss-3rd-party-releases</mirrorOf>
        <name>Jboss Third Party Repository</name>
        <url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/</url>
    </mirror>
  </mirrors>

And the build is successfully.


Navigation bar was blinked in mobile device

There's a lil bug whenever the site was opened in mobile device after removing collapse in header section f580fe7. i know its confusing, in other hand we want the navigation work smoothly by removing collapse but in other hand too there is a blinked navigation menu when it is opened on a mobile device

@yuxxeun
Oh I see, the icon hasn't changed in your menu. However, in the official demo (which has the latest code available), it works correctly:
https://astrowind.vercel.app/
Please, could you try the demo on your device and see if the same thing happens to you.

yup, i was adding hidden in nav section and its look smoothly now


Extending discriminated union types

In Typescript I can do something like this:
type Nestable =
  | {
      has_children: false;
    }
  | {
      has_children: true;
      children: [string, ...string[]];
    };

and compose that with other types:
type Prototype = {
  object: "block";
  id: string;
  created_at: Date;
  updated_at: Date;
};

export type Block = Prototype & Nestable;

such that I will get compile errors if I declare a block object like so:
const b: Block = {
  object: "block",
  id: "xxx",
  ...
  has_children: false,
  children: ["yyy"] // <-- error: "children" does not exist on type
};

With zod, I can't achieve this in a similarly composable way. I can use discriminated unions to achieve the same type checking, but then I lose the ability to compose that type with other types.
const Nestable = z.discriminatedUnion("has_children", [
  z.object({
    has_children: z.literal(false)
  }),
  z.object({
    has_children: z.literal(true),
    children: z.string().array()
  }),
]);

const Prototype = Nestable.extend({  // <-- error: property 'extend' does not exist on type ...
  // similar zodified schema declaration
});

I can do it slightly differently and make each type in the discriminated union extend Prototype, but that is annoying. And still leaves me with an un-extendable "final type" (which is of type z.ZodDiscriminatedUnion<...>
I'm not requesting anything specific, unless there are features in flight that might make this easier to do, but rather looking for suggestions on how to implement such types with zod.

Very much needed

I believe there's two ways to do this: z.intersection and the .and property of z.ZodDiscriminatedUnion?
Unless I'm missing something 🤔  (which I very well could be, I also thought this was impossible until just now when I discovered this). It appears to work:
import { z } from 'zod'

const Nestable = z.discriminatedUnion("has_children", [
  z.object({
    has_children: z.literal(false)
  }),
  z.object({
    has_children: z.literal(true),
    children: z.string().array()
  }),
]).and(z.object({foo: z.string()}));

type N = z.infer<typeof Nestable>;

const Nestable2 = z.intersection(z.discriminatedUnion("has_children", [
  z.object({
    has_children: z.literal(false)
  }),
  z.object({
    has_children: z.literal(true),
    children: z.string().array()
  }),
]), z.object({foo: z.string()}));

type N2 = z.infer<typeof Nestable2>;

const validData = {
  has_children: false,
  foo: ""
};
console.log(Nestable.safeParse(validData));
console.log(Nestable2.safeParse(validData));

const validData2 = {
  has_children: true,
  children: [""],
  foo: ""
};
console.log(Nestable.safeParse(validData2));
console.log(Nestable2.safeParse(validData2));

const invalidData = {
    has_children: false,
    children: [""],
    foo: ""
};
console.log(Nestable.safeParse(invalidData));
console.log(Nestable2.safeParse(invalidData));

const invalidData2 = {
    has_children: true,
    foo: ""
};
console.log(Nestable.safeParse(invalidData2));
console.log(Nestable2.safeParse(invalidData2));

The one caveat is this example will pass validation:
const b: Block = {
  object: "block",
  id: "xxx",
  ...
  has_children: false,
  children: ["yyy"] // <-- error: "children" does not exist on type
};

But I believe that's more of a function of zod's default "strip" behavior. If you want this to error, I believe adding a .strict() to the discriminated union member
z.object({
    has_children: z.literal(false)
  })

will do the trick.

Excellent! Thank you again!

I believe there's two ways to do this: z.intersection and the .and property of z.ZodDiscriminatedUnion?
Unless I'm missing something 🤔 (which I very well could be, I also thought this was impossible until just now when I discovered this). It appears to work:
import { z } from 'zod'

const Nestable = z.discriminatedUnion("has_children", [
  z.object({
    has_children: z.literal(false)
  }),
  z.object({
    has_children: z.literal(true),
    children: z.string().array()
  }),
]).and(z.object({foo: z.string()}));

type N = z.infer<typeof Nestable>;

const Nestable2 = z.intersection(z.discriminatedUnion("has_children", [
  z.object({
    has_children: z.literal(false)
  }),
  z.object({
    has_children: z.literal(true),
    children: z.string().array()
  }),
]), z.object({foo: z.string()}));

type N2 = z.infer<typeof Nestable2>;

const validData = {
  has_children: false,
  foo: ""
};
console.log(Nestable.safeParse(validData));
console.log(Nestable2.safeParse(validData));

const validData2 = {
  has_children: true,
  children: [""],
  foo: ""
};
console.log(Nestable.safeParse(validData2));
console.log(Nestable2.safeParse(validData2));

const invalidData = {
    has_children: false,
    children: [""],
    foo: ""
};
console.log(Nestable.safeParse(invalidData));
console.log(Nestable2.safeParse(invalidData));

const invalidData2 = {
    has_children: true,
    foo: ""
};
console.log(Nestable.safeParse(invalidData2));
console.log(Nestable2.safeParse(invalidData2));

Thank you very much!


Email sending to multi signer using docusign php

Hi,
How can we send email to two signers using the template kindly let us know the changes to do
args = $this->getTemplateArgs();
        $this->clientService = new SignatureClientService($this->args);
        $this->routerService = new RouterService();
        parent::controller($this->eg, $this->routerService, basename(__FILE__));
    }

    /**
     * 1. Check the token
     * 2. Call the worker method
     *
     * @return void
     * @throws ApiException for API problems and perhaps file access \Exception, too
     */
    public function createController(): void
    {
        $minimum_buffer_min = 3;
        if ($this->routerService->ds_token_ok($minimum_buffer_min)) {
            # 1. Call the worker method
            # More data validation would be a good idea here
            # Strip anything other than characters listed
            $envelope_id = $this->worker($this->args);

            if ($envelope_id) {
                $_SESSION["pause_envelope_id"] = $envelope_id;
                $nextExampleUrl = "/public/index.php?page=eg033";
                $this->clientService->showDoneTemplate(
                    "Envelope sent",
                    "Envelope sent",
                    "The envelope has been created and sent!
                             Envelope ID {$envelope_id}.
To resume a workflow after the first recipient signs
                             the envelope use example 33."
                );
            }
        } else {
            $this->clientService->needToReAuth($this->eg);
        }
    }

    /**
     * Do the work of the example
     * 1. Create the envelope request object
     * 2. Send the envelope
     *
     * @param  $args array
     * @return string
     * @throws ApiException for API problems and perhaps file access \Exception, too
     */
    public function worker($args): string
    {
        # Step 3-1 Start
        $envelope_args = $args['envelope_args'];
        $envelope_api = $this->clientService->getEnvelopeApi();
        $envelope_definition = $this->make_envelope($envelope_args);
        # Step 3-1 End

        # Step 4 Start
        $envelope = $envelope_api->createEnvelope($args["account_id"], $envelope_definition);
        $envelope_id = $envelope["envelope_id"];
        # Step 4 End

        return  $envelope_id;
    }

    /**
     *  Creates envelope definition
     *  Parameters for the envelope: signer_email, signer_name, signer_client_id
     *
     * @param  $envelope_args array
     * @return EnvelopeDefinition -- returns an envelope definition
     */
    # Step 3-2 start
    private function make_envelope($envelope_args)
    {
        # The envelope has two recipients
        # Recipient 1 - signer1
        # Recipient 2 - signer2
        # The envelope will be sent first to the signer1
        # After it is signed, a signature workflow will be paused
        # After resuming (unpause) the signature workflow will send to the second recipient

        # Create the top-level envelope definition
        $envelope_definition = new EnvelopeDefinition([
            'email_subject' => "EnvelopeWorkflowTest",
        ]);

        # Create the signer recipient models
        # routing_order (lower means earlier) determines the order of deliveries
        # to the recipients.
        $signer1 = new Signer([ # The signer1
            'email' => $envelope_args['signer1_email'],
            'name' => $envelope_args['signer1_name'],
            'recipient_id' => "1",
            'routing_order' => "1",
        ]);

        $signer2 = new Signer([ # The signer2
            'email' => $envelope_args['signer2_email'],
            'name' => $envelope_args['signer2_name'],
            'recipient_id' => "2",
            'routing_order' => "2",
        ]);

        # Create SignHere fields (also known as tabs) on the documents.
        $sign_here1 = new SignHere([
            'document_id' => "1",
            'page_number' => "1",
            'tab_label' => "Sign Here",
            'x_position' => "200",
            'y_position' => "200",
        ]);

        $sign_here2 = new SignHere([
            'document_id' => "1",
            'page_number' => "1",
            'tab_label' => "Sign Here",
            'x_position' => "300",
            'y_position' => "200",
        ]);

        # Add the tabs model (including the sign_here tabs) to the signer
        # The Tabs object takes arrays of the different field/tab types
        $signer1->setTabs(
            new Tabs([
                'sign_here_tabs' => [$sign_here1, ],
            ])
        );

        $signer2->setTabs(
            new Tabs([
                'sign_here_tabs' => [$sign_here2, ],
            ])
        );

        # Add the recipients to the envelope object
        $recipients = new Recipients([
            'signers' => [$signer1, $signer2, ],
        ]) ;
        $envelope_definition->setRecipients($recipients);

        # Create a workflow model
        # Signature workflow will be paused after it is signed by the first signer
        $workflow_step = new WorkflowStep([
            'action' => "pause_before",
            'trigger_on_item' => "routing_order",
            'item_id' => "2",
        ]);
        $workflow = new Workflow([
            'workflow_steps' => [$workflow_step, ],
        ]);
        # Add the workflow to the envelope object
        $envelope_definition->setWorkflow($workflow);

        # Request that the envelope be sent by setting |status| to "sent"
        # To request that the envelope be created as a draft, set to "created"
        $envelope_definition->setStatus($envelope_args['status']);
        return $envelope_definition;
    }

    # Step 3-2 End

    /**
     * Get specific template arguments
     *
     * @return array
     */
    public function getTemplateArgs(): array
    {
        $signer1_name  = preg_replace('/([^\w \-\@\.\,])+/', '', $_POST['signer1_name']);
        $signer1_email = preg_replace('/([^\w +\-\@\.\,])+/', '', $_POST['signer1_email']);
        $signer2_name  = preg_replace('/([^\w \-\@\.\,])+/', '', $_POST['signer2_name']);
        $signer2_email = preg_replace('/([^\w +\-\@\.\,])+/', '', $_POST['signer2_email']);
        $envelope_args = [
            'signer1_email' => $signer1_email,
            'signer1_name' =>  $signer1_name,
            'signer2_email' => $signer2_email,
            'signer2_name' =>  $signer2_name,
            'status' => "Sent",
        ];
        $args = [
            'account_id' => $_SESSION['ds_account_id'],
            'base_path' => $_SESSION['ds_base_path'],
            'ds_access_token' => $_SESSION['ds_access_token'],
            'envelope_args' => $envelope_args
        ];

        return $args;
    }
}

Emails will be sent automatically to the next signer if they are set to be "remote signer". "Embedded Signers" do not get emails. You should check that your signer doesn't have a clientUserId associated with the object, as that indicates embedded signer.

Closing this issue as there's nothing wrong with the code examples here.


dependency_specifiers does not allow a specific verision to be specified

I'm not sure if we're doing this wrong, or if this is potentially the new way of the world but there doesn't seem to be a way to say a product depends on a specific version of ERT.  Dependency specifiers require a major.minor.* pattern.  When depending on something like ERT with 1.9.* it uploads with 1.9.* in the dependencies section on PivNet instead of 1.9.0,1.9.1, 1.9.2, etc.  The old version using "dependencies" allowed you to specify the individual version.  I couldn't find any guidance on this in the docs.
This can be an issue if a product is incompatible with a specific version of a product dependency (for example: works with ERT 1.8.3 but not earlier versions of that 1.8 ERT)

@robertjsullivan you're correct, the dependency_specifier world is designed to specify an entire minor range, i.e. my product is dependent on other product versions 1.7.*, or in the case of stemcells, a major range i.e. all stemcells in 3312.*.
This is by design, as it is a bad experience for consumers of a product when it depends on a patch version of another, and so we are trying to move away from this behavior.
If you need to specify a specific patch dependency, you can still use dependencies directly instead of dependency_specifiers. It is deprecated but it likely won't be removed for some time while we still have older products that need this. I would strongly encourage all product authors to avoid specifying dependencies on patch versions of other products if at all possible, especially for newer products.
@crawsible any thoughts here?

@robertjsullivan Rob's correct on all counts; we do still support old-style dependencies although we discourage their use. There are some cases where they're unavoidable -- and indeed correct -- at the moment though, such as stemcell dependencies for tiles that don't yet float.
Dependency specifiers are a work in progress, so if you have a specific case that dependency specifiers cannot fit please let me know. Requiring an ERT >=1.8.3 is a use case that's on our radar, though we haven't yet heard of any new releases that would need to communicate that form of dependency. Are you in that situation at the moment?

@crawsible We have an example use case in pretty much every product we manage, and I do see this type of thing continuing, primarily driven by the on-going need for security backport patches, where we have to declare a dependency on a specific patch version for multiple minor versions of Ops Man and/or ERT (or sometimes product needed other tiles), typically in the >= format you mentioned. The first two examples below essentially follow your use case example, but we do that over multiple minors at once, not just one minor. The 3rd is the example of a quirky case but one we deal with. And the 4th an example of something PivNet does not handle well, and we've had to continue to handle with docs

JMX Bridge product latest, had we proceeded with original security request to backport security work against Ops Man 1.8, 1.9, instead of waiting for 1.10/1.11, we would have had to declare >=x.x.X for JMX Bridge on 1.8.x 1.9.x Ops Mans; I expect that type of security work with patch backport dependencies to continue on all types of products
Log Search had a required firehose user change that was backported, so that older patch versions only worked with older ERT and then the newer LS patch versions only worked with certain ERT patch versions of multiple minors in >=x.x.X format
PCF Metrics 1.0  (can't list "upgrades from" for v1.0.9 through v1.0.14) because of bugs that prevent successful upgrades from these versions
PCF Metrics 1.2: latest v1.2 declares special consideration on Ops Man for running (1.8.*) vs upgrading (1.7.8+) and ERT 1.8.9+ is minimum 1.8 patch version due to needed feature add in 1.8 required to run

@AmberAlston Thanks for those examples. We're going to start by addressing the "1.8.9+" specifier first (currently in the backlog); I'll circle up with you offline once it's done, so I can demo it for you and also better understand your other use-cases.

This is now implemented; closing this issue.


changes to make compile under tsc for DefinitelyTyped

interface Thenable {
then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable;
then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Thenable;
}

declare class Promise implements Thenable {
/**
* If you call resolve in the body of the callback passed to the constructor,
* your promise is fulfilled with result object passed to resolve.
* If you call reject your promise is rejected with the object passed to reject.
* For consistency and debugging (eg stack traces), obj should be an instanceof Error.
* Any errors thrown in the constructor callback will be implicitly passed to reject().
*/
constructor(callback: (resolve : (value?: T | Thenable) => void, reject: (error?: any) => void) => void);

/**
 * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
 * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
 * Both callbacks have a single parameter , the fulfillment value or rejection reason.
 * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
 * If an error is thrown in the callback, the returned promise rejects with that error.
 *
 * @param onFulfilled called when/if "promise" resolves
 * @param onRejected called when/if "promise" rejects
 */
then<U>(onFulfilled?: (value: T) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
then<U>(onFulfilled?: (value: T) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;

/**
 * Sugar for promise.then(undefined, onRejected)
 *
 * @param onRejected called when/if "promise" rejects
 */
catch<U>(onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
}

declare namespace Promise {
/**
* Make a new promise from the thenable.
* A thenable is promise-like in as far as it has a "then" method.
*/
function resolve(value?: T | Thenable): Promise;

/**
 * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
 */
function reject(error: any): Promise<any>;
function reject<T>(error: T): Promise<T>;

/**
 * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
 * the array passed to all can be a mixture of promise-like objects and other objects.
 * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
 */
function all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
function all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
function all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
function all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
function all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
function all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
function all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
function all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
function all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
function all<T>(values: (T | Thenable<T>)[]): Promise<T[]>;

/**
 * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
 */
function race<T>(promises: (T | Thenable<T>)[]): Promise<T>;
}

and it looks like the test can be fairly simple. Pretty much exactly what you do to use the client and just log the results.

Yea, the test I have locally as well and it's this:
/// <reference path="oidc-client.d.ts" />

var settings = {
    authority: 'http://localhost:5000/oidc',
    client_id: 'js.tokenmanager',
    redirect_uri: 'http://localhost:5000/user-manager-sample.html',
    post_logout_redirect_uri: 'http://localhost:5000/user-manager-sample.html',
    response_type: 'id_token token',
    scope: 'openid email roles',

    popup_redirect_uri:'http://localhost:5000/user-manager-sample-popup.html',

    silent_redirect_uri:'http://localhost:5000/user-manager-sample-silent.html',
    automaticSilentRenew:true,
    //silentRequestTimeout:10000,

    filterProtocolClaims: true,
    loadUserInfo: true
};
var mgr = new UserManager(settings);

///////////////////////////////
// logs
///////////////////////////////
function log(...args){
    Log.info(args);
}

///////////////////////////////
// events
///////////////////////////////
mgr.events.addAccessTokenExpiring(function () {
    log("token expiring");
});

mgr.events.addAccessTokenExpired(function () {
    log("token expired");
});

mgr.events.addSilentRenewError(function (e) {
    log("silent renew error", e.message);
});

mgr.events.addUserLoaded(function (user) {
    log("user loaded", user);
    mgr.getUser().then(function(){
       log("getUser loaded user after userLoaded event fired");
    });
});

mgr.events.addUserUnloaded(function (e) {
    log("user unloaded");
});

///////////////////////////////
// functions for UI elements
///////////////////////////////
function clearState(){
    mgr.clearStaleState().then(function(){
        log("clearStateState success");
    }).catch(function(e){
        log("clearStateState error", e.message);
    });
}

function getUser() {
    mgr.getUser().then(function(user) {
        log("got user", user);
    }).catch(function(err) {
        log(err);
    });
}

function removeUser() {
    mgr.removeUser().then(function() {
        log("user removed");
    }).catch(function(err) {
        log(err);
    });
}

Actually, sorry.... let's do it this way. Here's my DT fork: https://github.com/brockallen/DefinitelyTyped. Send me a PR there, please if you don't mind. For the life of me, I can't seem to get this working in my local copy.

which part are you have issues with? After using the the typings I submitted initially I have noticed 4 things that need to change. The name of the typings file needs to be changed to index.d.ts, this line https://github.com/IdentityModel/oidc-client-js/blob/master/oidc-client.d.ts#L47 needs to be changed to
logger: any;

the 3rd thing I missed the property expired on User so
interface User {
        id_token: string;
        session_state: any;
        access_token: string;
        token_type: string;
        scope: string;
        profile: any;
        expires_at: any;
        state: any;
        toStorageString(storageString?: any);
    }

needs to be
interface User {
        id_token: string;
        session_state: any;
        access_token: string;
        token_type: string;
        scope: string;
        profile: any;
        expired:boolean;
        expires_at: any;
        state: any;
        toStorageString(storageString?: any);
    }

the last thing is optional I don't know if you want to expose the user class but if you do this part would need to change
declare var UserManager: Oidc.UserManager;
declare var OidcClient: Oidc.OidcClient;
declare var AccessTokenEvents: Oidc.AccessTokenEvents;
declare var Log: Oidc.Log;
declare var InMemoryWebStorage: Oidc.InMemoryWebStorage;
declare var MetadataService: Oidc.MetadataService;
declare var WebStorageStateStore: Oidc.WebStorageStateStore;
declare var User: Oidc.User;


API changes in version 1.0?

Creating a new issue to keep track of changes to be considered for an upcoming 1.0-release.  This top entry will be edited to reflect all significant changes planned.
Backward compatibility plan
I would like users to be able to upgrade to 1.0 without changing anything, if possible (though, hacks to support usage patterns from 0.5 and earlier may be dropped in 1.0).  When version 2.0 comes, all hacks to support backward-compatibility with 1.x will be removed.  My suggestion is that the proper usage of 1.0 is to start with something this:
from caldav import CalDAVClient
client = CalDAVClient(**connection_arguments)
principal = client.principal()

and then everything should be doable starting with the objects client or principal.  In version 2.0, caldav/caldav/__init__.py will be trimmed to only reveal the CalDAVClient.  All operations starting with CalDAVClient will results in objects/classes supporting the 1.0-API.  For the classes where the API is changed, we'll create a new class with a class name ending with "NG" (new generation), inheritate the old class, and do the needed changes.  In version 2.0 we'll refactor and remove the NG-cruft.
In 1.0, DAVClient will be a class for backward-compatibility with version 0.x.  In version 2.0 we should consider to split out DAV-support to a separate davclient-module.
API Changes

some_obj.instance should (probably) deliver an icalendar object rather than a vobject, there should be no hard internal dependency on vobject, but it should still be possible to get a vobject by calling some_obj.vobject_instance instead of some_obj.instance.
Logic for expanded date searches should be improved a bit (@tobixen  of yesterday wrote this bullet point, @tobixen  of today has already forgotten what it is about)
Python 2.0 is End Of Life, long ago.  We should not need to test the library towards python2, we should not need to maintain cruft for maintaining compatibility with python2, in fact we should remove all such hacks.
principal.calendar_home_set is a property now, while principal.calendar(), client.principal(), etc is not.  We should be consistent.  At one hand, I generally don't like too much "magic" going on, at the other hand it's nice to use verbs for methods.  Perhaps the best (and easiest) path forward is to use principal.get_calendar(), client.get_principal(), etc.

#87 - support for sync-collection - is important, is assumed to be a relatively big task, and is probably independent of the API changes suggested above.  It may be that there will be a 0.8 supporting sync-collection, or that it will be in a 1.1-release.

SEMVER states ...

If your software is being used in production, it should probably already be 1.0.0.
If you have a stable API on which users have come to depend, you should be 1.0.0.
If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.

All three points apply, hence a 1.0-release is way overdue.
New tentative road map:

There won't be any 0.12.  There will be a 1.0.0.
1.0.0 will be fully backward-compatible with 0.11.
Already in 0.11, I've marked up some stuff as DEPRECATED.  This stuff will be abandoned as of a future 2.0.0-release (or perhaps 3.0.0 for important things like date_search )
We will gradually think of what is sub-optimal with the API while working on the 1.x-series and perhaps make a new and better API available prior to a future 2.0.0-release.
I will think out (or check out what others are using) some framework to warn when library users are using some deprecated API.

@cyrilrbt do you have any opinions?

It's always been my intention to align with semver so let's go for it!
This is a good idea, and it will be useful for future releases, go for it :)

It may be needed with a 2.0-release relatively soon due to pull request #437.


Certification page display issues - background and bottom padding

Looking forward for reporting a security issue:
Please report security issues by sending an email to<EMAIL_ADDRESS>instead of raising a GitHub issue.
Describe the bug
There is some display issues with the certification page, for example:

The background is set to height 100% which means it cuts off at strange places depending on the browser size.
There is no spacing at the end of the page so the last line of text just bumps into the bottom of the browser window

To Reproduce
Steps to reproduce the behavior:

View a certificate page (tested on Mac/Chrome)
Scale the browser window so it has a scrollbar
Scroll down and see that the white background cuts off (see screenshot 1 below)
Scroll to the end of the page to see that the page doesn't have any padding (see screenshot 2 below)

Expected behavior
Screenshots
Screenshot 1:

Screenshot 2:

Desktop (please complete the following information):

OS: [e.g. iOS] Mac
Browser: [e.g. chrome, safari] Chrome
Version: [e.g. 22] Version 88.0.4324.150 (Official Build) (x86_64)

Additional context

@rtpHarry Sir,
Can you please share the link of the css file for this file.

@ahmadabdolsaheb Should this be something resolved using a Spacer component, or via CSS?
Also, are there any other aspects of this which could do with re-arranging/styling?

@ShaunSHamilton, yes some spacers at the bottom should do the trick. Other than the issue @rtpHarry mentioned regarding the sections running together, i cannot think of anything else.
P.S the donation element on the top of the certification should be reviewed after the fix.

An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors.
If you would like to contribute, and have not read the contributors docs, please do so here: https://contribute.freecodecamp.org/#/
If you have any issues with contributing, be sure to join us on the contributors channel, or on the contributors sub-forum

@manakwadhwa2002 I'm not sure exactly what you mean, but looking on the page, there isn't an external file for the css, its embedded into the page.
It seems that unticking this will fix the design:

Or alternatively setting it to min-height:

A solution that would target the certificate-outer-wrapper and its children is recommended to avoid unwanted changes to the other parts of the platform.

there is also this, can be addressed here or better a new issue?
https://forum.freecodecamp.org/t/the-responsive-webdesign-certificate-is-not-responsive/447635


Beyond Trust Remote support SAML based SSO guide

This guide looks to be incomplete:

There isn't a section to explain the need to update the Basic SAML configuration URLs
There are no detailed instructions on setting up the user in the Service Provider. Is this actually required for SAML?

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

ID: d6503f86-e458-5662-f0ab-4ca8747726d3
Version Independent ID: fc25025e-2da7-c708-d1c2-e32cbee3ccf9
Content: Tutorial: Azure Active Directory single sign-on (SSO) integration with BeyondTrust Remote Support
Content Source: articles/active-directory/saas-apps/bomgarremotesupport-tutorial.md
Service: active-directory
Sub-service: saas-app-tutorial
GitHub Login: @jeevansd
Microsoft Alias: jeedes

@KalpeshKhetani Thank you for your feedback . We will have this reviewed and update the thread.

@KalpeshKhetani , Basic SAML configuration URLs are must be configured while creating a trust between Beyond - Azure AD which enable Single-Sign-on for users and SAML configuration (metadata) need to be updated on both side. Upon, exchanging metadata, user provision need to be configured as explained in this section.
Could you please elaborate more which section isn't clear in Docs which help me to provide more information. Thanks.

@ssivas - The first sections in this article explaining the SAML configurations are detailed. However the user creation section here appears to be incomplete:

The section is titled Create BeyondTrust Remote Support test user.
The paragraph underneath mentions the user provision settings - this is different to creating a user.
Next there is a screenshot of the User Attribute Settings with no further instructions. This is different to creating a user.
Following the Note about the Group Attribute, there is a screenshot from what appears to be Azure Active Directory with no further instructions.
Straight under this there is a screenshot from the BeyondTrust Application with no further instructions.
Finally there is a Note referencing the BeyondTrust Group Policy

So as you can see, for this "Create BeyondTrust Remote Support test user" section, we do not have step by step instructions as we do for the earlier sections.

@v-hagamp  and @chetansriv can you please rested the app and then update the instructions here?

Document was updated as suggested above so, I am closing this Issue.
#please-close


Cannot activate reindex option on the windows app

Hi, when I select the reindex option and click save it says Node restart all the time and the icon rotates but nothing happens. It has been running for an hour. Is it normal that it takes so long? Yesterday it just stopped after an hour with the error message that the blocks are corrupted. Then the app starts to resync but the reindex option is still not enabled. Can you help me? I would like to enable the reindex option.

How i can send the log files to you? The zip folder is 37 MB.

app logs.log

Hi @Popa11 , well received, please give the team time to investigate this issue. Thank you.

Hi @Popa11 , update v2.1.6 is out https://defichain.com/downloads/.
Do give a thumbs up to this comment if your issue has been resolved, otherwise, you may reopen this issue with new information (include screenshots) and your app logs. Thank you.

Hi @Popa11 , update v2.1.6 is out https://defichain.com/downloads/.
Do give a thumbs up to this comment if your issue has been resolved, otherwise, you may reopen this issue with new information (include screenshots) and your app logs. Thank you.