Expose current_tags as public method [no-merge]

logger.tagged support was added in the following commit: https://github.com/crohr/syslogger/commit/a43ea7fc65aa061f6d37a65bc436cdd7f88c7016
But with the current_tags method being private, myself and others are running into issues when using Syslogger with ActiveJob:
https://github.com/rails/rails/issues/19439
Any reason current_tags can't be public?

Not convinced this change does the trick. Will take another look tomorrow.

From lib/active_job/logging.rb:
def logger_tagged_by_active_job?
  logger.formatter.current_tags.include?("ActiveJob")
end

current_tags is actually called on the formatter, which is a proc in the syslogger gem:
def initialize(ident = $0, options = Syslog::LOG_PID | Syslog::LOG_CONS, facility = nil)
  @ident = ident
  @options = options || (Syslog::LOG_PID | Syslog::LOG_CONS)
  @facility = facility
  @level = Logger::INFO
  @formatter = proc do |severity, datetime, progname, msg|
    msg
  end
end

There's a related bug, https://github.com/rails/rails/issues/19439 filed in the ActiveJob gem, but I suspect for tagged support, syslogger should support logger.formatter.current_tags.
Any interest in replacing the proc formatter with an instance of an syslogger formatter class?

I'm running into this issue as well, we are trying to use Syslogger with ActiveJob, we can make it work by wrapping Syslogger with ActiveSupport::TaggedLogging. When used in combination with lograge ActiveSupport::TaggedLogging ruins the output format though, so it really isn't a solution for us.
If you're interested in making a change to support this, I'm glad to take a shot and submit a pull request but I just wanted to know if you think that this change needs to occur in the Syslogger library or if it should be fixed in ActiveJob.


Cannot use the same shortcut and label name in different projects

The issue is the following:

I create Project A.
Import some annotated data to the project - set of labels is automatically created as a result (let's say, Label 1, Label 2, Label 3)
I edit these labels - provide a shortcut and color
I create Project B and import another portion of dataset (with the same set of labels)
I try to replicate setting of Project A (assign the same shortcuts, colors and label names to labels), which gives me an error:
You cannot use same label name or shortcut key.

It seems not very convenient that we cannot create labels with the same shortcut and label name in different project. I wonder if it was made intentionally or it is a bug.
Thank you very much for a great tool.

Thanks! I will check the problem.

Problem fixed.

Hi @Hironsan
This issue seems to be fixed, but I now cannot edit label in the same project (receiving "You cannot use same label name or shortcut key." message). Could you please check when you have an opportunity ? Please let me know if we need a separate issue for that.
Thanks.


Fix not working in newsboat

macro d and c are not working

fixed by sending output to /dev/null 2>&1


RFC: Add '$schema' property at root of the spec 2.x

JSON schema specifies a standard way for a document to tell what JSON Schema document can be used to validate it. This is the /$schema property.
Unfortunately this property is strictly disallowed in the Swagger 2.0 JSON schema (/additionalProperties is set to false): Swagger authors decided to use instead the /swagger property. This is enough for humans, but the presence of /$schema could be useful for machines to
validate Swagger specifications that use vendor extensions and for which a JSON schema specifying the schema of those extensions is available. That would allow to write a Swagger spec that explicitely points to those extensions.
So we add /$schema, with a default value of http://swagger.io/schema/v2.0/schema.json (see
swagger-api/swagger.io#48 which is a request to have canonical URLs for Swagger JSON schemas).
As this feature is incompatible with the 2.0 schema (/$schema is forbidden in 2.0 because /additionalProperties is set to false), setting this value in a document will only be possible if a version 2.0.1/2.1 of the specification is published with that extension. So this patch is not designed to be directly merged to the existing schema, but instead to show the required changes to the spec to allow this feature.

Thanks for the explanation, but the better way to make the proposal is by opening a ticket as a feature request rather than a PR. A PR will get lost in the list of proposal most likely, plus there's the risk of someone accidentally merging it. I'd very much appreciate it if you'd submit it as an actual proposal.


feat: reply asynchronous unless return_route all

All DIDComm call must be asynchronous unless it has return_route header specified For ATL-5535

So "return_route":"all" is a must on the Pickup and Mediator Coordinator protocols

I believe e2e tests will fail

The tests will be fixed later


theme upgrade

please test the new setup instructions in README.md with a fresh git clone.. as this PR is largely to improve developer quality of life! i tested several times and it works but i want to make sure there are no global dependencies / setup instructions that need to be added.

upgrades to latest just-the-docs (note the release is titled v0.3.3 but the .gemspec - perhaps erroneously - is at v0.3.2)
update setup instructions
add default new search options to _config.yml (appears to be helpful - this is the only functional change)

thank you for this!!
pretty sure my ruby/jekyll/whatever setup is busted. i can't resolve this error:
~/Downloads/docs$ jekyll build
Traceback (most recent call last):
	21: from /usr/local/bin/jekyll:23:in `<main>'
	20: from /usr/local/bin/jekyll:23:in `load'
	19: from /var/lib/gems/2.7.0/gems/jekyll-4.1.1/exe/jekyll:8:in `<top (required)>'
	18: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	17: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	16: from /var/lib/gems/2.7.0/gems/jekyll-4.1.1/lib/jekyll.rb:209:in `<top (required)>'
	15: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	14: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	13: from /var/lib/gems/2.7.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
	12: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	11: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	10: from /var/lib/gems/2.7.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
	 9: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 8: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 7: from /var/lib/gems/2.7.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
	 6: from /var/lib/gems/2.7.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
	 5: from /var/lib/gems/2.7.0/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
	 4: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 3: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 2: from /var/lib/gems/2.7.0/gems/ffi-1.13.1/lib/ffi.rb:4:in `<top (required)>'
	 1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- 2.7/ffi_c (LoadError)
	22: from /usr/local/bin/jekyll:23:in `<main>'
	21: from /usr/local/bin/jekyll:23:in `load'
	20: from /var/lib/gems/2.7.0/gems/jekyll-4.1.1/exe/jekyll:8:in `<top (required)>'
	19: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	18: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	17: from /var/lib/gems/2.7.0/gems/jekyll-4.1.1/lib/jekyll.rb:209:in `<top (required)>'
	16: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	15: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	14: from /var/lib/gems/2.7.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
	13: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	12: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	11: from /var/lib/gems/2.7.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
	10: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 9: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 8: from /var/lib/gems/2.7.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
	 7: from /var/lib/gems/2.7.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
	 6: from /var/lib/gems/2.7.0/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
	 5: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 4: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 3: from /var/lib/gems/2.7.0/gems/ffi-1.13.1/lib/ffi.rb:3:in `<top (required)>'
	 2: from /var/lib/gems/2.7.0/gems/ffi-1.13.1/lib/ffi.rb:6:in `rescue in <top (required)>'
	 1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': libffi.so.7: cannot open shared object file: No such file or directory - /var/lib/gems/2.7.0/gems/ffi-1.13.1/lib/ffi_c.so (LoadError)

the previous setup step allegedly succeeded. i have libffi-dev, freshly reinstalled.
if this works for you i'm happy to just merge. if it breaks i can revert.

what's the output from gem install ffi ?

this is what my output looks like:
mbp@mbp /Users/mbp
% cd Desktop/docs
mbp@mbp /Users/mbp/Desktop/docs
% bundle                                                          (theme-upgrade) docs
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 13.0.1
Using public_suffix 4.0.6
Using addressable 2.7.0
Using bundler 2.1.4
Using colorator 1.1.0
Using concurrent-ruby 1.1.7
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Fetching em-websocket 0.5.2
Installing em-websocket 0.5.2
Using ffi 1.13.1
Using forwardable-extended 2.6.0
Using i18n 1.8.5
Using sassc 2.4.0
Using jekyll-sass-converter 2.1.0
Using rb-fsevent 0.10.4
Using rb-inotify 0.10.1
Fetching listen 3.3.1
Installing listen 3.3.1
Using jekyll-watch 2.2.1
Using rexml 3.2.4
Using kramdown 2.3.0
Using kramdown-parser-gfm 1.1.0
Using liquid 4.0.3
Using mercenary 0.4.0
Using pathutil 0.16.2
Fetching rouge 3.25.0
Installing rouge 3.25.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.7.0
Using terminal-table 1.8.0
Using jekyll 4.1.1
Fetching jekyll-redirect-from 0.16.0
Installing jekyll-redirect-from 0.16.0
Fetching jekyll-seo-tag 2.7.1
Installing jekyll-seo-tag 2.7.1
Using just-the-docs 0.3.2 from source at `.`
Bundle complete! 2 Gemfile dependencies, 32 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
mbp@mbp /Users/mbp/Desktop/docs
% jekyll build                                                    (theme-upgrade) docs
Configuration file: /Users/mbp/Desktop/docs/_config.yml
            Source: /Users/mbp/Desktop/docs
       Destination: /Users/mbp/Desktop/docs/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
                    done in 7.418 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
mbp@mbp /Users/mbp/Desktop/docs
% bundle exec jekyll serve --baseurl '/docs' --watch              (theme-upgrade) docs
Configuration file: /Users/mbp/Desktop/docs/_config.yml
            Source: /Users/mbp/Desktop/docs
       Destination: /Users/mbp/Desktop/docs/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
                    done in 7.584 seconds.
 Auto-regeneration: enabled for '/Users/mbp/Desktop/docs'
    Server address: http://<IP_ADDRESS>:4000/docs/
  Server running... press ctrl-c to stop.
[2020-11-24 19:06:03] ERROR `/docs/favicon.ico' not found.

i obviously don't know how to use ruby ;)
this is working great now.


Mobile - Implementing Search Page Design

As designs are updated, search page will be updated according to its mock-up.

Completed search view of home page.


SA1013 fires for escaped closing brace in a multi-line interpolated verbatim string

string s = @$"
    {{
    }}";

SA1013: Closing brace should not be preceded by a space

Tested with StyleCop.Analyzers 1.2.0-beta.507

Update: Woops, never mind. I was looking in the wrong place


File checksum/file size does not update after anonymization

As title. Orthanc seems to calculate both the checksum and the file size before it is being handled by our custom storage area.
This means we either have to 1. find a function that allows us to override the default checksum behavior or 2. to just update the checksum and file size in the database ourselves.
There is something call _OrthancPluginComputeHash in the plugin header but I can't find any documentation on it, doubt it's useful. Updating the checksum ourselves is probably eaiser.

I discover that the checksum must've been done elsewhere after WriteDicomFile. The uuid of the fil doesn't exist in the database during WriteDicomFile. I don't know why this surprises me lol, it's so obvious now looking back.
The problem now is, where does the checksum or the file data get written to the database? The checksum for the file written to the database is still the original md5 and size, before the filtering is done.

What's the situation if we use the filter callback instead of storage area callbacks (or in addition to)

What's the situation if we use the filter callback instead of storage area callbacks (or in addition to)

I'll investigate that

OrthancPluginIncomingDicomInstanceFilter receives a pointer to an OrthancPluginDicomInstance object, which means that everything should be in the database when it is called. I don't see a way to get the UUID of the file for the DicomInstance tho..

I take it back. No nothing should be in the database yet, but this should be the function that we do the anonymization on. Since it receives a pointer to DicomInstance we can just modify the instance directly. What do you think? @cppcooper

I think there is a commit somewhere in the history that does this. It sounds good, I'm just not sure it works like that cause I haven't looked at it since early November I think

I think there is a commit somewhere in the history that does this. It sounds good, I'm just not sure it works like that cause I haven't looked at it since early November I think

I saw there's a commented line with OrthancPluginIncomingDicomInstanceFilter in the current develop branch, I will look through the commits as well.
The one concern I have is there isn't a way to modify the size of said instance. Maybe instead of modifying the instance we discard it and replace it with our new instance.

There's also this call back that we can maybe use: OrthancPluginOnStoredInstanceCallback

orthanc-server  | W0128 10:09:12.422416 PluginsManager.cpp:168] OnIncomingCallback:<PHONE_NUMBER>07200
...
orthanc-server  | W0128 10:09:12.426424 PluginsManager.cpp:168] WriteDicomFile: success
orthanc-server  | W0128 10:09:12.434887 PluginsManager.cpp:168] OnStoredCallback:<PHONE_NUMBER>07184

So we can see here the stored callback happens after the file is saved. This is probably when the db is updated.
So we could try to update the DB in the OnStoredCallback, it will hopefully have the data.. if not then we'll have to try this other option.
Or we could move the ApplyFilter call to OnIncomingCallback and try to create a new Dicom Instance and discard the incoming version.. then simplify the storage area to just write the file and perform hard linking.

So based on this morning's tests option 2 will require more than
    auto i2 = OrthancPluginCreateDicomInstance(globals::context, buffer.get(), size);
    OrthancPluginFreeDicomInstance(globals::context,i2);

The core managed instance isn't actually stored, so we might need a library to perform a C-store operation to the localhost server. Unless we can find an alternative in the Orthanc api. So let's see about doing the update in the on stored callback first so the data maintains the one way trip aspect we've got now.

Sounds like a plan, I'm working on a POC right now, should be up in the repo tonight.

orthanc-server  | W0128 10:09:12.422416 PluginsManager.cpp:168] OnIncomingCallback:<PHONE_NUMBER>07200
...
orthanc-server  | W0128 10:09:12.426424 PluginsManager.cpp:168] WriteDicomFile: success
orthanc-server  | W0128 10:09:12.434887 PluginsManager.cpp:168] OnStoredCallback:<PHONE_NUMBER>07184

So we can see here the stored callback happens after the file is saved. This is probably when the db is updated.
So we could try to update the DB in the OnStoredCallback, it will hopefully have the data.. if not then we'll have to try this other option.
Or we could move the ApplyFilter call to OnIncomingCallback and try to create a new Dicom Instance and discard the incoming version.. then simplify the storage area to just write the file and perform hard linking.

How did you get this result? I'm using OrthancPluginGetInstanceSize to retrieve the size. However, the size is still wrong (i.e same size as the unfiltered file). Using OrthancPluginComputeMd5 also gives the old, unfiltered md5 as well.
Debug output:
orthanc-server  | W0131 22:23:29.386636 PluginsManager.cpp:168] OnStored Instance Id: 87ae9004-f692ccad-c4599afc-64b4d6ba-1dff969c
orthanc-server  | W0131 22:23:29.387522 PluginsManager.cpp:168] Checksum: MD5 = ee4dbf69191ef6e3c2c088083a4e2f8e, size = 577536

Database:
uncompressedsize | uncompressedhash
577536 | ee4dbf69191ef6e3c2c088083a4e2f8e

Sounds like a plan, I'm working on a POC right now, should be up in the repo tonight.

Point of contact? Proof of concept?

How did you get this result?
What do you mean? What result? All I did was register callbacks and add logging to see what order they happen in. The numbers are pointers.

I'm using OrthancPluginGetInstanceSize to retrieve the size. However, the size is still wrong (i.e same size as the unfiltered file). Using OrthancPluginComputeMd5 also gives the old, unfiltered md5 as well.
Not sure if it was in this group, but I've got an md5 function we can use and just compute it on the buffer directly. It would make sense that Orthanc would only calculate the md5 once and return the cached result any time something asks for it.

I suppose this can be closed with #99 and #113
I think a bug with the checksum was fixed in the latter.

This is fixed


Google Chrome 73 fix

Thanks for the update!  Does this change work with firefox?

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject


When moving mouse from last right document tab to the nearest at the left - the last doc tab dissapears

Version of Archi
4.9. Beta 2
Archi Plug-ins
coArchi, jArchi,
Operating System
Windows 10
Expected Behaviour
Highlighting and showing tool-tips when moving mouse over the documents tabs.
Actual Behaviour
When moving mouse from last right document tab to the nearest at the left - the last doc tab dissapears:
Steps to Reproduce the Behaviour

Move mouse to the last doc tab at the right

Move mouse to the nearest tab at the left of the last right tab

Yes, this is an Eclipse bug that only affects the "Classic" and "Basic" themes:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=575873
We have to wait for Eclipse 4.22 to be released for the fix.
Workaround is to move the move around until it appears. Or use a different theme.


Object Browser doesn't view my sources

👉🏻 Issue text goes here.

⚠ REMOVE THIS LINE AND ANY SENSITIVE INFORMATION BELOW! ⚠

Context
Version

Code for IBM i version
2.6.4

Visual Studio Code version
1.85.1

Operating System
win32_x64

Active extensions
COBOL (cobol): 10.1.1
Code for IBM i Walkthroughs (vscode-ibmi-walkthroughs): 0.4.0
Db2 for IBM i (vscode-db2i): 0.6.0
Emmet (emmet): 1.0.0
Git (git): 1.0.0
Git Base (git-base): 1.0.0
GitHub (github): 0.0.1
HTML Language Features (html-language-features): 1.0.0
JSON Language Features (json-language-features): 1.0.0
Merge Conflict (merge-conflict): 1.0.0
Node Debug Auto-attach (debug-auto-launch): 1.0.0
TypeScript and JavaScript Language Features (typescript-language-features): 1.0.0
WSL (remote-wsl): 0.81.8

Remote system

Setting
Value

IBM i OS
V7R3M0

Tech Refresh
10

CCSID
65535

SQL
Disabled

Source dates
Disabled

Enabled features

/QOpenSys/pkgs/bin
/usr/bin
/QSYS.lib/ILEDITOR.lib
/QSYS.LIB

bash
attr
GENCMDXML.PGM
QZDFMDB2.PGM

git
iconv
GETNEWLIBL.PGM

ls

setccsid

tar

Variants
{
  "american": "#@$",
  "local": "��$"
}

Errors
[
  {
    "command": "/QOpenSys/usr/bin/qsh",
    "code": 1,
    "stderr": "CPF2111:  La libreria ILEDITOR esiste gi�.\nCPC2206:  � stata modificata la propriet� dell'oggetto QZSHSYSTEM in QTEMP di tipo *USRSPC.",
    "cwd": "/home/UFGHITTI"
  }
]

This is my config

Hi @ghitti ,
Please share the contents of your Code for IBM i output channel after you expand one of your source file and nothing shows up.

If you're working on an IASP, make sure you defined it in your connection settings as well as in jour JOBD.

Hi @sebjulliand, please find attached the info requested. Thanks in advance.
/home/UFGHITTI: /QOpenSys/usr/bin/qsh
system  "CHKOBJ OBJ(QSYS/UFGHITTI) OBJTYPE(*LIB) AUT()"
{
"code": 0,
"signal": null,
"stdout": "",
"stderr": "CPC2206:  � stata modificata la propriet� dell'oggetto QZSHSYSTEM in QTEMP di tipo *USRSPC."
}
/home/UFGHITTI: /QOpenSys/usr/bin/qsh
system  "DSPFD FILE(UFGHITTI/*ALL) TYPE(*ATR) FILEATR(*PF) OUTPUT(*OUTFILE) OUTFILE(ILEDITOR/O_t1wMAhcY)"
{
"code": 0,
"signal": null,
"stdout": "",
"stderr": "CPF9861:  Il file di emissione O_T1WMAHCY � stato creato nella libreria ILEDITOR.\nCPF9862:  Il membro O_T1WMAHCY � stato aggiunto al file di emissione O_T1WMAHCY nella libreria ILEDITOR.\nCPF3030:  558 record sono stati aggiunti al membro O_T1WMAHCY nel file O_T1WMAHCY in ILEDITOR.\nCPC2206:  � stata modificata la propriet� dell'oggetto QZSHSYSTEM in QTEMP di tipo *USRSPC."
}
/home/UFGHITTI: /QOpenSys/usr/bin/qsh
system  "QSYS/CPYTOIMPF FROMFILE(ILEDITOR/O_t1wMAhcY O_t1wMAhcY) TOSTMF('/tmp/vscodetemp-O_Tvj0aodx') MBROPT(*REPLACE) STMFCCSID(1208) RCDDLM(*CRLF) DTAFMT(*DLM) RMVBLANK(*TRAILING) ADDCOLNAM(*SQL) FLDDLM(',') DECPNT(*PERIOD)"
{
"code": 0,
"signal": null,
"stdout": "",
"stderr": "CPC2206:  � stata modificata la propriet� dell'oggetto QCPEXTEMPS in QTEMP di tipo *USRSPC.\nCPC7301:  File QACP848091 creato nella libreria QTEMP.\nCPC7305:  Membro QACP848091 aggiunto al file QACP848091 in QTEMP.\nCPC2206:  � stata modificata la propriet� dell'oggetto QACP848091 in QTEMP di tipo *USRSPC.\nCPC2206:  � stata modificata la propriet� dell'oggetto QACEXFLD12 in QTEMP di tipo *USRSPC.\nCPC2206:  � stata modificata la propriet� dell'oggetto QCP_I00001 in ILEDITOR di tipo *FILE.\nCPCA082:  Oggetto copiato.\nCPC2958:  Tutti i record copiati dal file O_T1WMAHCY in ILEDITOR\nCPC2191:  � stato cancellato l'oggetto QACP848091 in QTEMP di tipo *FILE.\nCPC2206:  � stata modificata la propriet� dell'oggetto QZSHSYSTEM in QTEMP di tipo *USRSPC."
}

Thank you. These are the commands executed when you expand a library. It lists the source physical files. I assume that works since I see no error. What happens next in the output when you try to expand one of those source physical files?

Nothing happens nor any output message.

Hi @sebjulliand, this is the content after CPYTOIMPF command using IFS browser integrated in VS Code and Code For IBM i plugin. It seems a CCSID problem.

If I manually launch the command CPYTOIMPF with this parameter " STMFCODPAG(*PCASCII) ", the stream file generated is readable.

If i launch the original command with STMFCCSID(1208), it doesn't work (not readable as above).
QSYS/CPYTOIMPF FROMFILE(ILEDITOR/O_U4IFTI5A O_U4IFTI5A)
TOSTMF('/tmp/vscodetemp-test')
MBROPT(*REPLACE)
STMFCCSID(1208)
RCDDLM(*CRLF)
DTAFMT(*DLM)
RMVBLANK(*TRAILING)
FLDDLM(',')
DECPNT(*PERIOD)
ADDCOLNAM(*SQL)

maybe our system QCCSID is set to 65535

If I enable "Enable SQL" parameter inside "features" tab I can now view the list of my source files as below

but now I'm not able to view the members inside source file due to this error:

@ghitti Right, SQL mode won't work for you because your CCSID is 65535.

If you are getting that issue with CPYTOSTMF with 1208 outside of Code for IBM i, it's likely a system issue. I am doing some research to see what might cause that.

@ghitti Even with system value QCCSID set to 65535, you should be able to make it work - provided your userprofile has a correct CCSID (not 65535!) and the SSH server is configured correctly. Please follow the guidelines described in the docs:
https://codefori.github.io/docs/#/pages/tips/ccsid
https://codefori.github.io/docs/#/pages/tips/ccsid?id=setting-environment-variables
If your sourcefiles have CCSID 65535, you may be able to set your desired CCSID in Source file CCSID in the settings for the connection in Code for IBM i:

However, we strongly advice to get your CCSID and SSH configurations right, so you can enable and use SQL to read your source file and member information - this would the best solution.

Thanks @chrjorgensen, it works.
My userprofile CCSID value was set as "*SYSVAL" (so 65535).


Alternate implementation of propertyAssignmentForField to avoid “Ambiguous use of ‘map’” error

This is an alternate output for propertyAssignmentForField that avoids the "Ambiguous use of 'map'" error described here: https://github.com/apollographql/apollo-ios/issues/178

@plarson Thanks for building this fix. I'm just running into it now.  Any word on when this might get merged?

@frenchdonuts Yes, that would be great!

It would be great if that can be merged 👍

Yes @frenchdonuts - please merge. It would be awesome 👍

Hi all, I don't have time to go through the fixes right now. However, I found a temporary fix-around. I don't know why this works (for me), but it does.

Click "Discard all changes" under the "Source Control" menu in XCode.
Run pod install.
Build and run

I need to fix some tests and check with the Flow and TypeScript targets before releasing a new version, but I hope we can get a new version out next week.

It turned out the code I merged wasn't actually correct, but I rewrote it and it now seems to be working. All the Apollo iOS tests pass with the new codegen.
This was released as apollo-codegen 0.18.4, which Apollo iOS 0.8.0 depends on.

Would be great to hear how this is working for people!


Enables x86 builds, with an option to skip

Since Jenkins now has linux 32 bit binaries, we can enable 32 bit
builds, since the major development platform has it.

Used wrong branch...


Use smiley codicon instead of custom svg icon

Hi, thanks for your extension.
I'd like to propose this change to improve it.
Currently, using my rapture-vscode theme, the icon in the SCM menu has a different color from the others. This change adresses the problem.
See below:
Before:

After:

Pros:

Respects theme color icon.foreground
No images needed

Cons:

Not customizable, must be an icon from the available codicons

@Pustur Thanks for the PR, it's a great change!


Gemini -(Kumo) Task created in a session that has been invalidated

Added method to update session headers instead of recreating new session everytime

Approved after fixing that typo
Makes me wonder why we didn't use this approach before 🤔 Should we deprecate the reconfiguring options as they seem error prone?

https://developer.apple.com/documentation/foundation/urlsession/1411477-configuration
The documentation reports that changes are not respected; are they actually being respected?

The property returns a copy of its own configuration.

Approved after fixing that typo
Makes me wonder why we didn't use this approach before 🤔 Should we deprecate the reconfiguring options as they seem error prone?

https://developer.apple.com/documentation/foundation/urlsession/1411477-configuration
The documentation reports that changes are not respected; are they actually being respected?

Oof, I looked through the docs to find that this morning when I approved it but totally missed it. This would explain why we didn't go this route before.
@gnkeshavamurthy is the property update actually being respected here?
cc: @pavm035


Build against libnl from conda-forge

Checklist

[X] Used a personal fork of the feedstock to propose changes
[X] Bumped the build number (if the version is unchanged)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)

Apparently the system libnl-3.so on CentOS has different symbols than on Ubuntu (the former uses nla_get_u8@libnl_3, whereas the latter uses nla_get_u8). This makes it impossible to build against the conda-forge libibverbs.so on Ubuntu, because it's referring to unavailable symbols.
Attempting to fix this by building against the libnl from conda-forge.

@conda-forge-admin, please rerender

Thanks Manolis! 🙏
Could you please add...
azure:
  upload_packages: False

...to...
https://github.com/conda-forge/rdma-core-feedstock/blob/e219de33f7a45e6303eb433d7cfa5617c34a5df4/conda-forge.yml#L1
...and then re-render?
This will cache the packages on CI so we can test

@conda-forge-admin, please rerender

Looking at the CI errors, think we need to move libnl to requirements/host. So it would look roughly like this
requirements:
  build:
    ...
  host:
    - libnl

Currently host isn't a section we have here. So this would be adding a new section to requirements

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

@conda-forge-admin , please re-render

Looks like the CI artifacts are available
Here are some relevant docs on using CI artifacts locally
Also here are examples with screenshots in issue: https://github.com/conda-forge/conda-forge.github.io/issues/1424

CI packages seem to work for me! One thing that's not clear to me how to check; will the final package contain a dependency on the conda-forge libnl package?
BTW I figured out why the Ubuntu (and actually also CentOS) libnl.so doesn't use the versioned symbols, resulting in the original problem. The upstream libnl linker script actually adds versioning to the symbols https://github.com/thom311/libnl/blob/main/libnl-3.sym, and the conda-forge package build respects this. However, Debian (and I assume other distros) actually patches-out this versioning https://sources.debian.org/patches/libnl3/3.7.0-0.2/debian/no-symvers.diff/, so they end up with a libnl-3.so with symbols that don't contain the version number.

That's good to hear!. Thanks Manolis 🙏
Yes we can see that at the end of the tests
    libnl:         3.8.0-hd590300_0  conda-forge

Am noticing we still are yum installing the system package though. We also just updated libnl. So am going to push a change to this PR to fix the yum issue and start a fresh build with the new libnl
If things still look good after that change, we should be good to go

@conda-forge-admin , please re-render

Looks like new CI artifacts are available
Could we try these as well to confirm things still work?
If they do, think we can merge

The latest CI packages work for me!

@conda-forge-admin , please re-render


Using an absolute path in a podspec is wrong, and causes checksum issues when installs are ran on different systems.
Example:
pod install --deployment --clean-install breaks on non-matching checksums on CI because the absolute path is not the same in that environment.
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
Verifying no changes
[!] There were changes to the lockfile in deployment mode:
SPEC CHECKSUMS:
  React-debug:
    New Lockfile: 419922cde6c58cd5b9d43e4a09805146a7dd13a8
    Old Lockfile: 1ce329843d8f9a9cbe0cdd9de264b20e89586734
  React-NativeModulesApple:
    New Lockfile: a683b0c999e76b7d15ad9d5eaf8b6308e710a93e
    Old Lockfile: f82356d67a137295d098a98a03be5ee35871b5a5
  React-runtimescheduler:
    New Lockfile: 79f8dff11acbe36aaeece63553680d7a8272af96
    Old Lockfile: 16c5282d43a0df50d7c68ebf0218aeeb642a7086
  React-utils:
    New Lockfile: 4fabb3cba786651e35bc41e610b0698fa24cecff
    Old Lockfile: e7e9118d0e85b107bb06d1a5f72ec5db6bddb911
  ReactCommon:
    New Lockfile: af30fb021799e18c85a8e30ce799e15607e82212
    Old Lockfile: f04f86f33c22e05dbf875789ea522ee486dace78

And even tho the change fixed an issue with pnpm, the issue it introduces with cocoapods I think is a bigger one.

Changelog:
[INTERNAL] - Revert commit that makes podfile unstable
Test Plan:
Tested locally that the hashes are stable

@cipolleschi approved the PR that caused this regression, so I'm tagging him here.
@koenpunt thanks for the PR, tested it and can verify it fixes the checksum in the podfile.lock issue and fixes our CI. Since the repo CI requires a Changelog before going green, feel free to add this:
Changelog
[iOS] [Fixed] - Fix conflicting hashes in pods lockfile from absolute paths in podspec files
[iOS] [Breaking] - Breaks pnpm support for building iOS project

This makes sense to me, but it will break again the pnpm setup. I'm thinking whether we can find an alternative way to do that.
For example, passing down the relative path to where the pods are copied... which is an empty string in case of stadard node and a proper value in case of pnpm.
WDYT?

Haven't used pnpm before, so have to try, but in any case, wouldn't that then not also result in a unstable Podfile.lock?

I think that it is unstable because, with Absolute Path, we end up having podspec.json files with full path, like:
<!-- other keys -->
"header_mapping_dir": "/User/<username>/<path>/<to>/<project>/node_modules/<path>/<to>/<header_mapping_dir>"
<!-- other keys -->

The variable part is the /User/<username>/ which is of course always different.
My suggestion is to find a way to get the relative path to <path>/<to>/<project> so that the header mapping dir results in something like:
<!-- other keys -->
"header_mapping_dir": "/<relative>/<path>/<to>/<project>/node_modules/<path>/<to>/<header_mapping_dir>"
<!-- other keys -->

In this case the relative path to would always be the same because it will be computed by cocoapods using the same setup that you are running locally and in CI.
So, in normal projects it would probably be something like:
<!-- other keys -->
"header_mapping_dir": "../node_modules/react-native/<header_mapping_dir>"
<!-- other keys -->

And in pnpm setup it would have a different number of .. and/or a different path from node_modules.
We are not using pnpm as well, so it's hard to reproduce also for us, unfortunately.

@cipolleschi - I'm wondering if pnpm compatibility is something that will be taken into consideration by the RN team in the future. I am maintaining an enterprise RN project which uses pnpm and expo, and have started running into build issues after upgrading to expo 51 (react-native 0.74). Would it be in my best interest to change package managers to something like npm or yarn going forwards - or do you think patching the react-native package locally to support pnpm would be a stable solution?


feat: support generator

It might improve the performances to use a Generator when reading big files.
I just added an overide function which allow this
export default function parseGitDiff(
  diff: Generator<string, any, unknown>,
  options?: GitDiffOptions
): Generator<AnyFileChange, any, unknown>;

Hi @madeindjs Thanks for the contribution.
I'm wondering if it slows down a lot when using large files as input, have you had any real life cases like that?

 I just tried to experimente some stuff to improve the performances: The execution time was identical. But it surely improve memory consumption. It's might also be cool if user wants to iterate on each changes without storing them in memory.
It's up to you to decide if this PR is good to have or not.
BTW, I tried to go further and use AsyncGenerator when reading the file (here) like this
async function* getGenerator() {
  const stream = createInterface({ input: createReadStream(FILE) });
  for await (const line of stream) yield line;
}

for await (const change of parseGitDiffAsync(getGenerator())) console.log(change);

...but my conslusion was the execution time become worse (aroud 2 times slower, probably because it requires that I add async everywhere). But it can still be intersting for large file which doesn't fit in memory.

But it surely improve memory consumption. It's might also be cool if user wants to iterate on each changes without storing them in memory.

@madeindjs  Agree!  Thanks for the explanation.
What do you think about the supporting streams instead of using generators?

Yes I agree, I'll update the PR with the support of stream instead of generator.
My only concern is I duplicated parse-git-diff.ts as parse-git-diff-async.ts to be able to introduce AsyncGenerator. I didn't find a way to factorize things because everything need to be async.

@yeonjuan , I added the support of Interface from Node.js readline package. It allow a sexy syntax like:
import { createInterface } from 'node:readline';
import { createReadStream } from 'node:fs';
import parseGitDiffAsync from './parse-git-diff-async.js';

const FILE = '/home/alexandre/Downloads/v3_2_0...v3_3_0.diff';
const stream = createInterface({ input: createReadStream(FILE) });
for await (const change of parseGitDiffAsync(stream)) i++;

The cool thing is readline might allow user to introduce CLI tools which allow pipe operator from the shell like git diff | script
Regarding performances , I noted thoses performances using my 25mb diff

method
time

parseGitDiff(diff: string)
0.30s

parseGitDiff(diff: Generator)
0.25s

parseGitDiff(diff: AsyncGenerator)
0.47s

I let you take a look at the PR and comment. As I said, I'm not that happy of the code because I copy/pasted many stuff. There is surely a way to factorize it better.

Hi @madeindjs Thanks for the work!
I agree that the code needs to be cleaned up, and I'm thinking about separating the public interfaces.
In the end, I'd like to have something like this.
import parseGitDiff, { parseGitDiffs, parseGitDiffsGenerator, parseGitDiffsStream } from 'parse-git-diff';

parseGitDiff; // deprecated

parseGitDiffs; // synchronized version
parseGitDiffsGenerator; // for supporting generator
parseGitDiffsStream; // for supporting stream

And it would be nice to see the output format changed for consistency.

AS-IS

{
   type:"GitDiff",
   files: [...]
}

TO-BE (remove root)

[
   { diff }, { diff }, { diff }
]

This might take a little longer. What do you think about what it would be like if I worked on this PR base?

Yes I agree that the ouput needs to be changed, but I didn't do it since it's a breaking change for the API.
I personally prefer the overides way because it looks better in term of developper experience. But it's your librairy, do as you like you prefer, don't worry :wink:
Of course, I'm fine that you work on this PR.


Can't send $XVG from electrum-xvg wallet

Hi,
sorry, I would have liked to add an issue in the electrum-xvg repository, but there is no "issues" tab in that one?
Since at least 2 weeks I cannot send $XVG from my wallet. I am connected to e3.verge-electrum.com. ( that is the only server I can connect to, so was not able to test another server - I tried e1 and e2 and several others I found on the net).
This is how I do it:
I have the target wallet in "Contacts" (my Binance Wallet, used it several times before).
Right click on contact -> Pay to
Enter amount (5500) and fee (4) -> [Send]
Are you sure? -> [Yes]
The fee is unusually high -> [Yes]
(Enter Password) -> [OK]
"Signing Transaction..." (takes very long, I think this was quicker in the past?) While this is shown, Network changes from "green" to "red" to "Arrows" several times.
After 2:54 Minutes "error: TX rejected"
I don't think, there is much I can do "wrong" here, right?
I already installed the wallet on a different computer using my seed. I can see my Balance and history fine but still cannot send any funds.
Please help :(

Oliver

see some suggestions on #701  as well...
TX rejected usually means the fee is too low.  I would personally increase it by 1 and keep trying.  I wouldn't go higher than maybe 10 though.

Hmm, really? Even at 2 XVG it tells me, "unusually high fee". I just set it so "high" as I had a transaction stuck one time for 2 weeks after sending it with 2 XVG fee. It was still accepted.
I try to go up with the fee, thanks!

Justin had a good explanation of WHY the fee is higher on #701
was your balance made by alot of deposits? say your balance is 100 coins. it can be from depositing 1 coin 100 times, or depositing 50 coins twice. when you go to send, if it were from alot of small deposits, then the transaction is bigger because of all the inputs. the 2 50 transactions would be smaller because only 2 inputs. the more inputs, the higher the fee
That being said -- that doesn't explain why you get a high fee warning above 1.  I'll make sure it's on on the devs radar if it's not already.
To that point though - I would highly recommend playing around with:
https://github.com/vergecurrency/electrum-xvg-tor/releases
the "electrum xvg with Tor" client.  I don't think they are planning on updating the "non tor" electrum much longer.  It will still work,  but if you want to stay up to date, you want to try to get the "Electrum xvg with Tor" working NOW while you have time and it's less stressful :)

@jrsikors Thank you very much, I didn't know that. Yes, my balance is from a lot of small deposits. It's the result of mining for several months and deposits come every 3 hours ;) That also explains, why it took so long to process that transaction! I had some big deposits - I guess, big deposits are transfered first, that's why I only had the problem why this last transfer...
I already tried electrum-xvg-tor. I was able to "import" my wallet, but I was never able to get a connection... I have no idea, why... But will look into it. Is it working for you? Which Server do you use?
Thanks,

Oliver

Step 1)  https://github.com/vergecurrency/electrum-xvg-tor/blob/master/lib/network.py
Step 2)  There's a button towards the top right that says "Raw".  Right click and do a "Save link as" ... and save it wherever
Step 3)  Browse to where you have electrum-xvg-tor installed
Step 4)  Go into the "lib folder"
Step 5)  Copy the network.py you downloaded in step 2 and overwrite the network.py
Step 6)  download install and run run TOR: https://www.torproject.org/download/download
Step 7)  open electrum-xvg-tor
I have auto-connect UNchecked
I have Use SSL checked
I have proxy at Socks5 ... <IP_ADDRESS> and port 9150


[K12] Update cumulusci.yml with apex test retries on APEX CPU limit

Critical Changes
Changes
Issues Closed
New Metadata
Deleted Metadata
Testing Notes

wow didn't know we can do that 👍

@jofsky Is this still needed?

Nope @jstvz closed the branch.


does not work with flutter_inappwebview: ^4.0.0+4

Describe the bug
Hi, there, I made an app using this plugin and the app also used flutter_inappwebview. Today I tried to deploy that app for web, so I had to upgrade flutter_inappwebview to version ^4.0.0+4. But this plugin requires flutter_inappwebview >= 3.4.0 <3.5.0. And So I couldn't upgrade the pub and neither could compile my app to the web. Can you look into it, please? Thanks
To Reproduce
try adding these packages in pubspec.yaml
youtube_player_flutter: ^7.0.0+6
flutter_inappwebview: ^4.0.0+4
after that:
flutter pub get
Expected behavior
You will get this error:
`Because youtube_player_flutter 7.0.0+6 depends on flutter_inappwebview >=3.4.0 <3.5.0 and no versions of youtube_player_flutter match >7.0.0+6 <8.0.0, youtube_player_flutter ^7.0.0+6 requires flutter_inappwebview >=3.4.0 <3.5.0.
So, because apod_app depends on both youtube_player_flutter ^7.0.0+6 and flutter_inappwebview ^4.0.0+4, version solving failed.
pub get failed (1; So, because apod_app depends on both youtube_player_flutter ^7.0.0+6 and flutter_inappwebview ^4.0.0+4, version solving failed.)
exit code 1`
Technical Details:

Device: chrome(web-javascript)
OS: windows 10
Version ^7.0.0+6

Updated the version constraint. And it should work now.


Enter space key, no response

Oni:
version: 0.2.22
os: Windows 7
I try input space on anywhere such as command line, text editor etc. there is no any response for me.

Hi @saibing!
Do you have "experimental.wildmenu.mode": true, in your configuration file? is adding it solves the problem?
By 0.2.22, do you mean master? if so, what commit?
Also, is it a regression for that version or are you trying it for the first time?
If all of the above didn't help, could you please explain what did you try to achieve and how? (I'm not sure I understand the problem)

my config.js settings

oni version

my problem

I can not input space between 'set' with 'nolist'

@bryphe, do you know how to approach such an issue? might it be related to one of the latest input-handling PRs?

@TalAmuyal - it's possible. I think it would be helpful for us to add logging in the InputManager too - we could get detailed tracing of which commands are passing the filter. My guess is that some command is swallowing the space/enter keys.
@saibing - do you have any custom keybindings in the activate section of your config.js?

my config.js

// For more information on customizing Oni,
// check out our wiki page:
// https://github.com/onivim/oni/wiki/Configuration

const activate = (oni) => {
    console.log("config activated")

    // Input
    //
    // Add input bindings here:
    //
    //oni.input.bind("<c-enter>", () => console.log("Control+Enter was pressed"))
    oni.input.bind("<s-c-r>", "language.findAllReferences")
    oni.input.bind("<s-insert>", "editor.clipboard.paste")

    //
    // Or remove the default bindings here by uncommenting the below line:
    //
    // oni.input.unbind("<c-p>")
}

const deactivate = () => {
    console.log("config deactivated")
}

module.exports = {
    activate,
    deactivate,
    //add custom config here, such as

    //"ui.colorscheme": "solarized8_dark",
    "editor.fontSize": "15px",
    "editor.fontFamily": "Source Code Pro",

    "experimental.editor.textMateHighlighting.enabled": true,

    "experimental.markdownPreview.enabled": true,
    // language server configuration
    "language.go.languageServer.rootFiles": [".git"],
    //"language.go.completionTriggerCharacters": ["."],
    "language.go.languageServer.arguments": ["--gocodecompletion", "--freeosmemory", "false"],

   //"oni.useDefaultConfig": true,
   //"oni.bookmarks": ["~/Documents",]
   //"oni.loadInitVim": true,
   //"editor.fontSize": "14px",
   //"editor.fontFamily": "Monaco"

   // UI customizations
    "ui.animations.enabled": true,
    "ui.fontSmoothing": "auto",
    "experimental.browser.enabled": true,
    "experimental.commandline.mode": true,
    "experimental.commandline.icons": true,
    "experimental.wildmenu.mode": true,
    "experimental.welcome.enabled": true,

    "experimental.neovim.transport": "stdio"
    // TODO: Enable pipe transport for Windows
    // "experimental.neovim.transport": Platform.isWindows() ? "pipe" : "stdio",
}

I found that there is no problem if I use default config.js file.

@bryphe @TalAmuyal
I found the problem occur if I enable the welcome page on startup
"experimental.welcome.enabled": true,

there are some errors on developer tools:
D:\work\git\ts\oni\node_modules\fbjs\lib\warning.js:33 Warning: Each child in an array or iterator should have a unique "key" prop.

Check the render method of `p`. See https://fb.me/react-warning-keys for more information.
    in s (created by p)
    in p (created by S)
    in S (created by Connect(S))
    in Connect(S) (created by b)
    in l (created by b)
    in div (created by styled.div)
    in styled.div (created by b)
    in div (created by styled.div)
    in styled.div (created by b)
    in b (created by Connect(b))
    in Connect(b) (created by i)
    in l (created by i)
    in div (created by i)
    in div (created by i)
    in i (created by i)
    in div (created by i)
    in div (created by i)
    in i (created by s)
    in div (created by s)
    in div (created by s)
    in s (created by _)
    in div (created by _)
    in div (created by _)
    in div (created by _)
    in div (created by _)
    in div (created by _)
    in ThemeProvider (created by _)
    in _ (created by Connect(_))
    in Connect(_)
    in l
/D:/work/git/ts/oni/lib/browser/bundle.js:1 Error: ENOENT: no such file or directory, stat 'D:\work\git\isource\ci\WELCOME'
/D:/work/git/ts/oni/lib/browser/bundle.js:1 Unhandled command: update_sp
t.warn @ /D:/work/git/ts/oni/lib/browser/bundle.js:1
/D:/work/git/ts/oni/lib/browser/bundle.js:1 Unhandled command: mode_info_set

Thanks @saibing ! Glad you found the issue, appreciate the update (and that you're testing all the experimental features 👍 ). Seems like there are still some issues with the welcome page before we can enable it by default.

Hope you don't mind - I updated the title to reflect the welcome page issue.

@bryphe
It's does not matter

should be fixed by #2552


Hosted project proposal: StarlingMonkey

Proposing the adoption of StarlingMonkey as a Bytecode Alliance hosted project.
Repository URL: https://github.com/bytecodealliance/StarlingMonkey
StarlingMonkey
StarlingMonkey is a component-native JavaScript runtime targeting WASIp2 or other sufficiently capable host environments. It's designed to be highly modular and is easily extensible with additional builtins.
StarlingMonkey is built on SpiderMonkey, the JS engine used by Firefox, and is thus highly spec compliant and extremely robust. Additionally, it includes an implementation of various web standards, such as the fetch API, WHATWG Streams, and a subset of the Web Crypto API.
StarlingMonkey is derived from Fastly's js-compute-runtime project, but has been significantly refactored and extended to be more modular and embeddable as part of an effort to integrate it into Fermyon's JS SDK for the Spin runtime.
(Note to observers: the StarlingMonkey repository is already in the Bytecode Alliance organization, but it's not yet an official Bytecode Alliance project. This was agreed on by the TSC a few months back, with this proposal being intended to formalize the status as a hosted project.)
Requirements
Alignment with the Bytecode Alliance Mission
I believe StarlingMonkey project aligns strongly with the Bytecode Alliance Mission by providing a robust toolchain for using JavaScript to develop WebAssembly Components.
StarlingMonkey is designed to be embeddable and extensible through hooks in its CMake based build system: it can be integrated into downstream projects and extended with additional builtins without changes to the code base itself. Additionally, all builtins are configurable and StarlingMonkey's host API is abstracted such that it can target other environments than WASIp2, meaning that the runtime can be tailored to the specific needs of downstream integrations.
One such integration is the existing ComponentizeJS project, through which it is easy to target arbitrary WIT interfaces using JavaScript without the need to compile custom runtimes.
Code Review
Description
Reviews by the members of the starlingmonkey-core team are required for all PRs, with a high code quality standard for all changes.
Code of Conduct
The project follows the Bytecode Alliance Code of Conduct.
Continuous Integration Testing
StarlingMonkey has a continuous testing setup consisting of multiple kinds of tests:

End-to-end tests that fully provide their own code and are checked against expected output
Integration tests using a JS harness and testing builtins such as assertions
A harness for running a relevant subset of the Web Platform Tests suite, ensuring a high degree of spec conformance of the implementations of builtins.

Contributor Documentation
The repo contains a README file that provides an overview of the project and how to build and run it. An issue is on file to provide more technical and architectural documentation and expand on conbtributor facing docs.
Following the Bytecode Alliance Operational Principles
The StarlingMonkey project is committed to be interoperable with other projects and follows a standards-first approach: it targets WASIp2 and aims for high compliance with web standards wherever applicable.
Licensing Compatible with the Bytecode Alliance
Currently, the project uses the BA's default license, Apache-2.0 WITH LLVM-exception, for all code in the repository. There's an intent to import Rust code under the MPL-2.0 license, which is compatible with the Apache-2.0 license and used by the upstream SpiderMonkey project. The Bytecode Alliance's board of directors has already granted an exception for this as required by the BA's IP policy.
README
A README can be found at https://github.com/bytecodealliance/StarlingMonkey/blob/main/README.md
Upon acceptance of this application, a header indentifying StarlingMonkey as a Bytecode Alliance project will be added.
Release Process
StarlingMonkey itself doesn't have an automated release process yet, but one is available through the integration into the ComponentizeJS project. An issue is on file to automate the release process for StarlingMonkey itself.
Security Process
StarlingMonkey is fully run in a sandboxed environment and doesn't have access to the host system, so the attack surface is significantly reduced. Nevertheless, an issue is on file for defining a formal security process for the project.
Semantic Versioning
The project itself doesn't yet have any formal releases. Instead, ComponentizeJS and other downstream projects update the version used by depending on a specific commit hash. An issue is on file to implement semantic versioning for the project.
Secrets Management
The project doesn't handle any secrets at the moment. If and when that changes, it will use GitHub secrets for repository-wide secrets.
Supply Chain Security
StarlingMonkey has few upstream dependencies, with the most notable ones being SpiderMonkey and OpenSSL—both projects with a very high level of scrutiny.
In both cases, official release versions are used, with additional patches carried downstream where needed.
Sustainable Contributor Base
StarlingMonkey receives regular contributions from multiple developers working at multiple organizations, and has a core maintainer team with members of two different Bytecode Alliance member organizations.
Version Control
StarlingMonkey is already hosted in the Bytecode Alliance GitHub organization.
Recommendations
Changelog
The project will follow keepachangelog.com once it's feature-complete and 1.0 version is released.
Continuous Fuzzing
no fuzzing is currently performed. While it'll make sense to eventually change that, the fact that the runtime is fully sandboxed and doesn't have access to the host system significantly reduces the attack surface.
End-User Documentation
StarlingMonkey itself doesn't really contain end-user documentation, as it's intended to be embedded into other projects. However, the ComponentizeJS project provides a high-level overview of how to use the runtime.
Issue Triage Process
The project uses GitHub to track issues and manage pull requests. A GitHub project is used to track blockers for a 1.0 release.
Leverage the Bytecode Alliance RFC Process
StarlingMonkey does not leverage the RFC process yet, mostly due to being a new project, which is not feature-complete yet, but it's intended to do so as part of the stabilization process.
Production Use
Multiple organizations are already using StarlingMonkey in production, including Fastly and Fermyon as part of the JS SDKs for their platforms.
Public Project Meetings and Notes
Currently, no public meetings are taking place for StarlingMonkey, but the JS subgroup of SIG-guest-languages is used to discuss the project.
Sanitizers and Code Analysis
SpiderMonkey is fully running inside the WebAssembly sandbox, making the use of sanitizers less critical. However, the project is considering adding sanitizers to the build process to catch potential issues early.

As a note, as the person making this proposal I'll recuse myself from all aspects of the evaluation by the TSC.

We discussed this at today's TSC meeting and I'm happy to announce that we have approved this proposal! Please work with @disquisitioner and the TSC for any administrative follow ups, thanks!


Fix for Dockerfile smell DL4000

Hi!
The Dockerfile placed at "docker/gpt_stack/geoportal/Dockerfile" contains the best practice violation DL4000 detected by the hadolint tool.
The smell DL4000 occurs when the deprecated MAINTAINER instruction is used.
This pull request proposes a fix for that smell generated by my fixing tool. The patch was manually verified before opening the pull request. To fix this smell, specifically, the MAINTAINER instruction is replaced by an equivalent LABEL instruction as recommended by the official guidelines.
This change is only aimed at fixing that specific smell. If the fix is not valid or useful, please briefly indicate the reason and suggestions for possible improvements.
Thanks in advance

thanks for the contribution!


TODO: core.algorithms.simplfy.loop() -- needs to be vectorized

Start of core.algorithms.simplfy.loop()
    dropped = edges[es_mask].geometry.item()
    segments = list(
        map(
            shapely.LineString,
            zip(dropped.coords[:-1], dropped.coords[1:], strict=True),
        )
    )  # TODO: vectorize this

xref uscuni/simplification#95

This is now in artifacts.loop()@L603-L608

I've got a simple solution that will provide a >3x speed up (although probably situation dependent).

[2] is the current method
[3] is the update method

In [1]: import geopandas, shapely
   ...: f = "sgeop/tests/data/apalachicola_original.parquet"
   ...: dropped = (
   ...:     geopandas.read_parquet(f, columns=["geometry"])
   ...:     .reset_index(drop=True)
   ...:     .loc[1:1]
   ...:     .geometry
   ...:     .item()
   ...:     .coords
   ...: )
   ...: dropped[:]
Out[1]:
[(-9462047.223577108, 3467323.3432275513),
 (-9462053.290489359, 3467334.520328292),
 (-9462062.273972265, 3467341.852101484),
 (-9462076.22230446, 3467348.478900078),
 (-9462095.324729081, 3467349.6453195256),
 (-9462122.397629242, 3467337.314604995),
 (-9462133.284675444, 3467321.9204551023),
 (-9462136.345961437, 3467315.0373149402),
 (-9462136.69105186, 3467304.1806749064)]

In [2]: %timeit list(map(shapely.LineString, zip(dropped[:-1], dropped[1:], strict=True)))
20.9 μs ± 221 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

In [3]: %timeit shapely.linestrings((dropped[:-1],  dropped[1:]))
6.37 μs ± 25.9 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

As an amendment – tests pass but 2 warnings are thrown:
============================================================================= warnings summary ==============================================================================
sgeop/tests/test_simplify.py::test_simplify_network_full_fua[aleppo_1133-0.2-4361625]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>133858 4006921.702477669). The artifact has not been simplified. The original message:
  IllegalArgumentException: point array must contain 0 or >1 elements

    roads = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[liege_1656-0.3-2350782]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>641856 5612681.851142581). The artifact has not been simplified. The original message:
  IllegalArgumentException: point array must contain 0 or >1 elements

    roads = simplify_singletons(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform darwin, python 3.12.7-final-0 ----------
Name                  Stmts   Miss  Cover   Missing
---------------------------------------------------
sgeop/__init__.py         8      0   100%
sgeop/artifacts.py      376     12    97%   95, 192-196, 204, 648-653, 1211-1213
sgeop/continuity.py      40      0   100%
sgeop/geometry.py       143      0   100%
sgeop/nodes.py          189      0   100%
sgeop/simplify.py       182      0   100%
---------------------------------------------------
TOTAL                   938     12    99%

================================================================ 165 passed, 2 warnings in 270.94s (0:04:30) ================================================================

Amendment 2
Swapping out the exact same function in artifacts.n1_g1_identical() leads to 2 failures and 8 warnings.
============================================================================= warnings summary ==============================================================================
sgeop/tests/test_simplify.py::test_simplify_network_full_fua[auckland_869-0.3-1268048]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>515278 -4076075.8698911807). The artifact has not been simplified. The original message:
  too many indices for array: array is 1-dimensional, but 2 were indexed
    roads = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[auckland_869-0.3-1268048]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>8630304 -4086815.291779113). The artifact has not been simplified. The original message:
  too many indices for array: array is 1-dimensional, but 2 were indexed
    roads = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[liege_1656-0.3-2350782]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>641856 5612681.851142581). The artifact has not been simplified. The original message:
  IllegalArgumentException: point array must contain 0 or >1 elements

    roads = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[liege_1656-0.3-2350782]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>394251 5610464.265210363). The artifact has not been simplified. The original message:
  too many indices for array: array is 1-dimensional, but 2 were indexed
    roads = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[liege_1656-0.3-2350782]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>674016 5616998.1691926). The artifact has not been simplified. The original message:
  too many indices for array: array is 1-dimensional, but 2 were indexed
    roads = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[liege_1656-0.3-2350782]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>726631 5610738.626389066). The artifact has not been simplified. The original message:
  too many indices for array: array is 1-dimensional, but 2 were indexed
    roads = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[slc_4881-0.3-1762456]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:355: UserWarning: An error occured at location POINT<PHONE_NUMBER>532481 4512617.5603151). The artifact has not been simplified. The original message:
  too many indices for array: array is 1-dimensional, but 2 were indexed
    roads_cleaned = simplify_singletons(

sgeop/tests/test_simplify.py::test_simplify_network_full_fua[aleppo_1133-0.2-4361625]
  /Users/jgaboardi/github_repos/uscuni/sgeop/sgeop/simplify.py:732: UserWarning: An error occured at location POINT<PHONE_NUMBER>133858 4006921.702477669). The artifact has not been simplified. The original message:
  IllegalArgumentException: point array must contain 0 or >1 elements

    roads = simplify_singletons(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform darwin, python 3.12.7-final-0 ----------
Name                  Stmts   Miss  Cover   Missing
---------------------------------------------------
sgeop/__init__.py         8      0   100%
sgeop/artifacts.py      376     12    97%   95, 192-196, 204, 648-653, 1213-1215
sgeop/continuity.py      40      0   100%
sgeop/geometry.py       143      0   100%
sgeop/nodes.py          189      0   100%
sgeop/simplify.py       182      0   100%
---------------------------------------------------
TOTAL                   938     12    99%

========================================================================== short test summary info ==========================================================================
FAILED sgeop/tests/test_simplify.py::test_simplify_network_small[standard-1.5-64566.0] - assert 64576.111663542615 ± 6.5e+00 == 64566.0
FAILED sgeop/tests/test_simplify.py::test_simplify_network_small[exclusion_mask-1.05-65765.0] - assert 65775.78242082833 ± 6.6e+00 == 65765.0
=========================================================== 2 failed, 163 passed, 8 warnings in 216.23s (0:03:36) ===========================================================

Full test suite timings:

original map(zip(...)) – 4m46s
updated artifacts.loop() – 4m30s
updated artifacts.{loop, n1_g1_identical}() – 3m36s

So clearly we are seeing a noticeable runtime improvement, especially when updating both artifacts.{loop, n1_g1_identical}(), but this is local testing... I'll see about cleaning up the testing branch I am working on tomorrow and push up for better cross-OS testing.
@martinfleis Do you have any input here?

Where is the vectorized code?

code:

from loop() – here
from () – here

CI running – here

After more investigation, I think I am doing something incorrectly. My solution works linstring composed of 2 sets of coordinates, but needs further thought for those with more.

I worked out the kinks and can report dramatic runtime improvements – in theory and in practice.

no warnings & no errors
the warnings I was seeing were actually errors being raised then caught and thrown as warnings 🤦

See this gist for demonstrated equivalence & timings of 4 examples – small, medium, large, huge.
Locally (on my beefy mac pro) I am seeing a reduced runtime of our test suite by ≈1 minute
Thinking the negligible differences in GHA CI are due to base machine specs


Issue #204 fix: Readthedocs build failing?

My bad! I had a typo in a file name. How embarrasing ! XD
Changes:
Rename tutotial.rst to tutorial.rst

Thank you for checking @BrunoSanchez ! Had also a typo today in one of my PRs :)


Automatically update nextmap mapLists.conf

Adds functionality wanted in https://github.com/beyond-all-reason/maps-metadata/issues/118

Need to run and commit make update_all_from_rowy after pulling this to prevent some popular maps from falling off the rotation lists.

Thank you so much for a full code review! I think I learned a lot. Hope I remember some of it the next time I write some Python.
I corrected all that I thought needed correcting, which was most of it. I left unresolved but commented on the two that I didn't do changes for, but feel free to click the resolve button on those too if you think my reasoning is good enough.

Alright I resolved all the things. It does almost start to look like it was written by someone who knew what they were doing. I cleared the "team ffa" confusion by combining the dictionaries so the term no longer appears.
I don't know about the .* default either. We could just leave those lists empty, but I don't know if !nextmap would then cause an error. I could also go input just enough metadata that we avoid empty lists (except the unused "small", "medium" etc.) altogether. Two of the bigger maps were made by me so I'm free to invent whatever 2v2v2v2v2v2v2v2 startboxes I want on them if that helps.

I tried adding some startboxes_info for Pawn Retreat in rowy for this purpose, but I am unable. It says the Teams column is locked by an admin. The column also does not autofill, which was probably what was intended. I think it creates the startboxes_info in the background, but it's broken since Teams-field is empty. In rowy it now says "Loaded all 1 of 2 rows" when opening startboxes set for Pawn Retreat and won't show the broken row.

(sorry for delay, got busy those 2 days, will get back here tomorrow)

No problem. Volunteer work and all that.

We could just leave those lists empty, but I don't know if !nextmap would then cause an error.

Good point, it's not obvious to me after I looked at SPADs source: I don't know perl, would need to test it properly. Let's keep it like it is right now.

The column also does not autofill, which was probably what was intended. (...) says "Loaded all 1 of 2 rows"

Yep! There was a bug in the script that autofills that didn't manifest until I've added this one additional field :). I've fixed it.


[SurvGroup] hr (hazard ratio)

Hello
I try your example (TCGA LAML MAF file) according to your introduction.
When I run the code  'SurvGroup'  for LAML data, I get the results as below (which is the same as those in your introduction)
SurvGroup function is to get the genes which are associated with POOR survival.
However, three gene sets in the results are related with GOOD survival, because hr (Hazard ration) is below 1. (although P value is above 0.05)
Can I improve this results?
 Gene_combination P_value    hr  WT Mutant

1:      FLT3_DNMT3A 0.00104 2.510 164     18
2:      DNMT3A_SMC3 0.04880 2.220 176      6
3:      DNMT3A_NPM1 0.07190 1.720 166     16
4:      DNMT3A_TET2 0.19600 1.780 176      6
5:        FLT3_TET2 0.20700 1.860 177      5
6:        NPM1_IDH1 0.21900 0.495 176      6
7:      DNMT3A_IDH1 0.29300 1.500 173      9
8:       IDH2_RUNX1 0.31800 1.580 176      6
9:        FLT3_NPM1 0.53600 1.210 165     17
10:      DNMT3A_IDH2 0.68000 0.747 178      4
11:      DNMT3A_NRAS 0.99200 0.986 178      4

Hi,
SurvGroup simply returns the p-value and HR for combination of genes. You will have to interpret the results. In the above case first two rows would be of interest solely based on p-values.

Thank you for your answer.
Can I ask you one more question for survGroup?
The results for gene-set depends on the top value.
survGroup(..., top= 20,...)
For example with  TCGA LAML MAF file, top five gene-sets were different between top=20 and =5.
top=20
Gene_combination P_value    hr  WT Mutant
1:      FLT3_DNMT3A 0.00104 2.510 164     18
2:      DNMT3A_SMC3 0.04880 2.220 176      6
3:      DNMT3A_NPM1 0.07190 1.720 166     16
4:      DNMT3A_TET2 0.19600 1.780 176      6
5:        FLT3_TET2 0.20700 1.860 177      5
6:        NPM1_IDH1 0.21900 0.495 176      6
7:      DNMT3A_IDH1 0.29300 1.500 173      9
8:       IDH2_RUNX1 0.31800 1.580 176      6
9:        FLT3_NPM1 0.53600 1.210 165     17
10:      DNMT3A_IDH2 0.68000 0.747 178      4
11:      DNMT3A_NRAS 0.99200 0.986 178      4
top=5
Gene_combination P_value    hr  WT Mutant
1:      FLT3_DNMT3A 0.00104 2.510 164     18
2:      DNMT3A_NPM1 0.07190 1.720 166     16
3:        NPM1_IDH1 0.21900 0.495 176      6
4:      DNMT3A_IDH1 0.29300 1.500 173      9
5:        FLT3_NPM1 0.53600 1.210 165     17
6:      DNMT3A_IDH2 0.68000 0.747 178      4

top argument corresponds to number of top highly mutated genes. As in top rows of getGeneSummary() output.

Thank you for your detailed response.
I understand that  firstly, survGroup function selects the candidate genes according to  the mutation frequency (in the top 20) and then calcutates gene-sets with significant P-value for survival.


Spotify Player: Introduce OAuth and several useful commands

Finally! 🎉  The Spotify review team has reviewed my app on their side.
Description
In the new version, you don't need to create a developer app, generate tokens and bla.., but what is more astonishing is that it will support a few more valuable things like: Lik Current Song, Search Artists -> Search Albums -> Play Albums entirely, and many more.
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

This is great! I was going to take a look at resolving #1479, but with the work you've done here, it will be even easier to implement.

Hey @pernielsentikaer, thanks for the good catches! I've updated the PR, please take a look at the extension again when you have time 👏


Include percentile response times in the requests stats csv

This is the second part of PR #160:

Include the percentile response times in the main "requests" CSV. This change could be a bit more controversial, but I don't see the reason to have to download two different CSVs containing the same set of rows, but with different data. The tricky part about this change is that it obviates the need for the percentile distribution CSV entirely, but removing it could break existing implementations. Also, there would no longer be a need both the "Max response time" and "100%" columns as these are duplicates. I left both in for backwards compatibility with any tools that analyze the CSVs directly.

@fordhurley Do you still want to pursue this PR and discuss having it merged?

I still think it's a good idea, but it definitely requires some thinking, testing, and documenting. At the moment, it's more of a suggestion with a little code for how it could be done.
I just rebased, but haven't tested the updated code at all. I don't have the time at the moment to get it running.

@fordhurley Thank you!
@aldenpeterson-wf Do you happen to have any input on this?

I think this is probably a good idea longer term to simplify things.
My main concern would be making those files too large but that's.... going to be requiring an insane number of unique tasks being reported to really matter at all.

Hi! This PR has been untouched for a very long time and has conflicts so I am closing it. Let me know if this was a mistake and feel free to open it again.


feat: use leantar in lake exe cache

This hooks up the new leantar tool from https://github.com/digama0/leangz to lake exe cache. It uses an olean compressor to achieve much smaller file sizes, and faster decompression. See the Zulip discussion.
The new files have a new file extension, 123.ltar instead of 123.tar.gz. This implementation does not multiplex between them, so it will be a hard reset. In fact, the new cache doesn't even know how to clear the old cache files, so you might need to do that manually. Switching between branches will still work during the interim, since the cache will have both kinds of file and use the right ones.

[x] depends on: #5409

All working for me now, and a massive speedup:
# Before #5710
lake clean && lake exe cache get!   # 343s
lake exe cache get                  # 17s

# After #5710
lake clean && lake exe cache get!   # 49s
lake exe cache get                  # 4s

This PR/issue depends on:

leanprover-community/mathlib4#5409
By Dependent Issues (🤖). Happy coding!

Oh wow, I just had the pleasure of running lake exe cache get on a low bandwidth hotel wifi, and it took 25 minutes. A (projected) 7x decrease to 3.57 minutes would make quite a big difference!

This PR/issue depends on:

leanprover-community/mathlib4#5409
By Dependent Issues (🤖). Happy coding!

bors merge

I am happy with the static linking issue now.  The branch works fine on nixos.
@fpvandoorn complained about windows performance on zulip.  Is this still an issue (is it even a regression) and is there something we can do about it?

We investigated it and it doesn't seem like there is much we can do about it, the bottleneck is the write itself and I think windows is just slow at writing lots of files. I don't think it is a regression compared to the original tar script, but perhaps @fpvandoorn could do a clean test and confirm this.

When testing a bit more carefully yesterday, I think now that leantar is still quite a bit quicker than the original tar. I don't have time to test it atm, but I'm happy if this gets merged.

bors r+

bors seems to not be working. I'll try again.

bors r-

bors merge

I think bors is failing here because it has already merged this PR once (my fault, I merged too early and had to revert). I'm just going to squash merge now.


Clarify tag group key help info

Issue
The keyword used for tag groups in create taggroup and set taggroup should be clarified in the help text to be clear that the keyword may only contain a-z and dash.
Additionally, SetTagGroup should ensure lowercase for the keyword used.

Resolved in PR #214


Add OSM Nelson mapping group

I've added a mapping group (website) for Nelson, New Zealand (and the wider area) and a feature for the corresponding group.

Thanks @catdogmat!


vue-survey-builder added in Miscellaneous section

vue-survey-builder open source project link added in the Miscellaneous section.
This is component which helps in building surveys in vue.js applications

Thank you so much for merging my PR.


SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set

I'm trying out a scrapy package https://github.com/clemfromspace/scrapy-selenium.
I've followed the directions on the main github page above. I started a new scrapy project and created a spider:
from scrapy_selenium import SeleniumRequest

from shutil import which

SELENIUM_DRIVER_NAME = 'firefox'

SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_DRIVER_ARGUMENTS=['-headless']  # '--headless' if using chrome instead of firefox

class MySpider(scrapy.Spider):

    start_urls = ["http://yahoo.com"]
    name = 'test'

    def start_requests(self):
        for url in self.start_urls:

            yield SeleniumRequest(url, self.parse_index_page)

    def parse_index_page(self, response):
        ....

I've downloaded the latest geckodriver and set the path as above
The output contains:
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.logstats.LogStats']
2019-07-05 14:14:44 [scrapy.middleware] WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set
2019-07-05 14:14:44 [scrapy.middleware] INFO: Enabled downloader middlewares:
2019-07-05 14:56:59 [scrapy.middleware] INFO: Enabled downloader middlewares:

['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
I don't see the selenium downloader and I see
WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set.

What am I doing wrong?

You may not set environment variables, you should add the geckodriver.exe to the environment variables.As for me, I just move geckodriver.ext to the Python Scripts file.

I'm trying out a scrapy package https://github.com/clemfromspace/scrapy-selenium.
I've followed the directions on the main github page above. I started a new scrapy project and created a spider:
from scrapy_selenium import SeleniumRequest

from shutil import which

SELENIUM_DRIVER_NAME = 'firefox'

SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_DRIVER_ARGUMENTS=['-headless']  # '--headless' if using chrome instead of firefox

class MySpider(scrapy.Spider):

    start_urls = ["http://yahoo.com"]
    name = 'test'

    def start_requests(self):
        for url in self.start_urls:

            yield SeleniumRequest(url, self.parse_index_page)

    def parse_index_page(self, response):
        ....

I've downloaded the latest geckodriver and set the path as above
The output contains:
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.logstats.LogStats']
2019-07-05 14:14:44 [scrapy.middleware] WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set
2019-07-05 14:14:44 [scrapy.middleware] INFO: Enabled downloader middlewares:
2019-07-05 14:56:59 [scrapy.middleware] INFO: Enabled downloader middlewares:

['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
I don't see the selenium downloader and I see
WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set.

What am I doing wrong?

You may not set environment variables, you should add the geckodriver.exe to the environment variables.As for me, I just move geckodriver.ext to the Python Scripts file.

I'm trying out a scrapy package https://github.com/clemfromspace/scrapy-selenium.
I've followed the directions on the main github page above. I started a new scrapy project and created a spider:
from scrapy_selenium import SeleniumRequest

from shutil import which

SELENIUM_DRIVER_NAME = 'firefox'

SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_DRIVER_ARGUMENTS=['-headless']  # '--headless' if using chrome instead of firefox

class MySpider(scrapy.Spider):

    start_urls = ["http://yahoo.com"]
    name = 'test'

    def start_requests(self):
        for url in self.start_urls:

            yield SeleniumRequest(url, self.parse_index_page)

    def parse_index_page(self, response):
        ....

I've downloaded the latest geckodriver and set the path as above
The output contains:
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.logstats.LogStats']
2019-07-05 14:14:44 [scrapy.middleware] WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set
2019-07-05 14:14:44 [scrapy.middleware] INFO: Enabled downloader middlewares:
2019-07-05 14:56:59 [scrapy.middleware] INFO: Enabled downloader middlewares:

['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
I don't see the selenium downloader and I see
WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set.

What am I doing wrong?

You may not set environment variables, you should add the geckodriver.exe to the environment variables.As for me, I just move geckodriver.exe to the Python Scripts file.

Have same issue, don't understand why.
In settings.py I activeted middleware, and set:
from shutil import which
SELENIUM_DRIVER_NAME = 'firefox'
SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_DRIVER_ARGUMENTS = ['-headless']
when I run spider recieve :
SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set

I have the same issue, the settings are set in settings.py, but it shows the error.
I overcame it by appending the settings to the command
scrapy crawl baseCrawler -s SELENIUM_DRIVER_NAME='firefox' -s SELENIUM_DRIVER_EXECUTABLE_PATH='{your/path/to/geckodriver}'

If you type which geckodriver in your terminal do you actually have the full path to the geckodriver?

Looks like I had some issues with the driver, I had to reinstall it using brew brew install geckodriver which seems to have fixed the issue, using the settings.py file works correctly now. I think the previous driver I had downloaded was not signed, have had some issues with PATH and executables since I updated to the latest Mac OS.

Glad it solved :)

Looks like I had some issues with the driver, I had to reinstall it using brew brew install geckodriver which seems to have fixed the issue, using the settings.py file works correctly now. I think the previous driver I had downloaded was not signed, have had some issues with PATH and executables since I updated to the latest Mac OS.

you saved my day :)


ROE-259 Add due diligence to the model

Jira ticket: https://companieshouse.atlassian.net/browse/ROE-917
Add due diligence to the model so that the identity checks agent details can be persisted.
Updated the mapping unit test to include this.

changes need to be added to spec


how to change view's projection when add layers with different projction

I  have many wmts serives with two different projetions such like "epsg:4326" and "epsg:3857" ,and i want to add them to my openlayer map. I used to use map.setView() to set the view directly, but it is not a kind way i think. In cesium，when i add a layer, i just set the projection type 'WebMercatorTilingScheme' or 'GeographicTilingScheme'  ,when i remove a layer, i dont need to set my viewer.But in openlayers, i need to get the top layer and set the view by my self. How can i do?
thank you!

Look into 3.11 which includes raster reprojection

@bartvde thank you very much, i have seen the example!

Raster reprojection tutorial is now online: http://openlayers.org/en/master/doc/tutorials/raster-reprojection.html


@conda-forge-admin, please update team

[x] I read the conda-forge documentation and could not find the solution for my problem there.

Issue:

Environment (conda list):

$ conda list

Details about  conda and system ( conda info ):

$ conda info

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I updated the team with maintainers from master.

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I updated the team with maintainers from master.


(v1.3) exception in queued task error being caught.

Exception in queued task: TypeError: this.scope.$digest is not a function
    at ReactiveContext._propertyChanged (http://localhost:3000/packages/angular-meteor-data.js?824d3de5440cdbff4fbb313ba44222b234957eca:2387:22)
    at Object.cursor.observe.addedAt (http://localhost:3000/packages/angular-meteor-data.js?824d3de5440cdbff4fbb313ba44222b234957eca:2260:21)
    at observeChangesCallbacks.addedBefore (http://localhost:3000/packages/minimongo.js?cdf1a26cf7719fa9471a8017c3defd5aea812727:3623:28)
    at Object.self.applyChange.addedBefore (http://localhost:3000/packages/minimongo.js?cdf1a26cf7719fa9471a8017c3defd5aea812727:3560:56)
    at http://localhost:3000/packages/minimongo.js?cdf1a26cf7719fa9471a8017c3defd5aea812727:407:13
    at _.extend.runTask (http://localhost:3000/packages/meteor.js?9730f4ff059088b3f7f14c0672d155218a1802d4:685:11)
    at _.extend.flush (http://localhost:3000/packages/meteor.js?9730f4ff059088b3f7f14c0672d155218a1802d4:713:10)
    at _.extend.drain (http://localhost:3000/packages/meteor.js?9730f4ff059088b3f7f14c0672d155218a1802d4:721:12)
    at LocalCollection.insert (http://localhost:3000/packages/minimongo.js?cdf1a26cf7719fa9471a8017c3defd5aea812727:615:22)
    at Object.self._connection.registerStore.update (http://localhost:3000/packages/mongo.js?69942a86515ec397dfd8cbb0a151a0eefdd9560d:250:28)

It happens when the component loads and when I change the sort variable. When the sort variable changes the subscription doesn't reload data.
this.sort = { 'profile.firstName': 1 };
this.helpers({
  users() { return Meteor.users.find({}, { sort: this.sort }) },
  sort: this.sort
});
 this.subscribe('users');

did you do $reactive(this).attach($scope) ?

I'm using angular2-now and extending the reactive component class. Perhaps there is something wrong with that package.

I also get this error. I tracked it down to angular-meteor-data.js file and line 2387. The propertyChanged function gets called each time a new document is added to the collection which is used as a property in the controller.
vm.helpers({
   mortgages: function() { return Mortgages.find() }
});

and then later on:
vm.subscribe('mortgages', function() { return [] });

I am using the controllerAs convention.

@vacarsu
why don't you do like this:
this.helpers({
  users() { return Meteor.users.find({}, { sort: this.sort }) },
  sort: { 'profile.firstName': 1 }
});
 this.subscribe('users');

In your code you have this.sort declared, and then in this.helpers you declare it again. It's selfreferencing.

It has nothing to do with that. It has to do with the $digest not being applied. It resubscribe but the view does not get updated properly.

@vacarsu could you try this:
this.sort = undefined;
this.helpers({
  users() { return Meteor.users.find({}, { sort: this.sort }) },
  sort:  { 'profile.firstName': 1 };
});
 this.subscribe('users');

My coworker had the same problem, when he 'initialized' the var outside the helper block.

@magbeat no dice. Still not working properly.

Can you provide a git for your project?
Thanks

@vacarsu is right.
I just started facing the same issue when I switched one of my components/controllers from v1.2 to v1.3.
There are 25 documents in a collection I'm subscribing to, and when each doc is added to subscription, this error is fired.

@dotansimha I don't have time to create a reproduction at this time. I reverted the component I was testing on back to the old syntax for now. I was also having issues with components not even loading after notification. No errors being thrown in that case.

this seems like the same error as in #943

Fixed in the new 1.3.1 release


add custom statements

Add the possibility to configure statements in addition to require/import/export.

Hi @HugoMuller there has been a recent massive refactoring (it has been a long time coming).
Unfortunately that has caused conflict to your PR.
I'll be closing this PR. If you still wish to submit this feature, please do open a new PR.
Sorry for the inconvenience and thank you for your understanding.


Document LC_CTYPE for language data

Environment

Tesseract Version:  any
Platform:  all

There is a bug report about a problem with loading asian training data, which that might be a bigger problem. It is currently not possible to load asian languages jpn, kor, etc on a system where LANG and locale are set to en_US.UTF-8, which is often the default.
A workaround is to set LC_CTYPE to C before calling api->Init() but it is unclear why this is needed and what side effects this has. Also I don't know if it is safe to set it back to en_US.UTF-8 afterwards.
Some documentation on this would be great.

Problem is that people do not read doc. Original issue was documented at "code.google era":

@zdenop,
https://github.com/tesseract-ocr/tesseract/wiki/FAQ#error-illegal-min-or-max-specification

The link you quote talks about LC_NUMERIC. I think this is different issue than LC_CTYPE for asian languages?

Is this a duplicate of issue #1250?


Network Performance Measurement: Make parameters tunable from outside

What type of PR is this?
/kind feature

What this PR does / why we need it:
This PR is for tuning the command parameters for TCP and UDP measurements(so that the metrics makes sense in k8s CI/CD clusters). This PR also contains changes
for making the tuning easier in future by controlling it from the workers deployment yaml file.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/assign @marseel

/lgtm
/hold
I've build image and pushed it to gcr. Do you want to test it before we merge this change?

/lgtm
/hold
I've build image and pushed it to gcr. Do you want to test it before we merge this change?

I have tested with the new image from gcr, looks good.Thanks!

/unhold

Ah, I don't have power to approve in this directory ;)
/assign @wojtek-t

/lgtm
/approve


rubocop breaks code when "fixing" attr :name, true

Rubocop replaces
attr :name, true
with
attr_reader :name, true
which is plain wrong. If it would replace that line at all, it should use
attr_writer :name
instead.

There's not much documentation, but it looks like
attr :name, true is equivalent to attr_accessor :name
and
attr :name, false and attr :name are equivalent to attr_reader :name.
So we do have a bug here.

Indeed. I had not idea about this behaviour. We should fix this.

I see that @weh has created an updated spec... but no code to actually make the spec pass. The two should go together.

@weh, would you like to write the code to fix this one?

yes, i was searching for a 24pullrequests issue to fix.

sorry for the mess with the issue references. lesson learned :)

Noticed one more issue in the code. And regarding the commit message - it should not end with . (titles don't have dots in them).

@bbatsov, I like your thorough code reviews!


some changes in vision / grad cam

👋 keras team!
Made some changes to the grad cam tutorial. Here is a summary of the changes:

Changed the grad cam function so that there is no need to list the remaining layers after the desired grad cam layer, this should help when the net's graph is not sequential after the chosen layer, e.g. #391
Removed last layer's activation function, c.f. #370
Added an option to specify which output neuron we wish to get the grad cam for. If this is not given, the argmax is used,
Avoided for loop with a matmul,
Wrapped the overlay heatmap and display in a function for later use,
Added a "multi-label" example with both a cat and a dog in the same image.

I hope these changes are helpful. Happy to further work on this if needed.

@googlebot I signed it!

Thank you!


Data descriptor section is not handled

If bit 3 of the general purpose bit flag is set, local file headers have a 12 byte (no header) or 16 byte (with header 0x08074b50) section after compressed data (zip64 is slightly different). This data contains values for the CRC32, compressed size, and uncompressed size of the data (these values will be 0 in the normal location). See section 4.3.9 of AppNote.txt for more information. This causes 2 issues:

If this section is present, the values from it are not read. This results in them being 0.
If this section is present when reading files with JvmZipReaderStrategy, the offset used in JvmLocalFileHeader does not take into account these extra bytes, causing it to read this section as part of the compressed data.

Fixed with #19 - Thank you 👍


esckeys and c_CTRL-V don't play nicely

Version: 8.1.2269 (debian)
Steps to reproduce in xterm:

:set esckeys
i^V^K
(github doesn't like angle brackets, those are control+V and control+K)

Expected result:
^K
Actual result:
^[[27;5;107~

This is not related to 'esckeys' but modifyOtherKeys (see the help for that).
I had been wondering whether we should translate the escape sequence back to the character it encodes, but decided (so far) that it's more consistent to keep the escape code.  Thus this is working as intended, I'll close it.
Why would you want ^K to show?

Mostly because I use it to type :help ^K instead of having to type :help c_CTRL-K.

I referenced esckeys because :set noek makes the problem go away (at the cost of losing the very nice esckeys functionality).

I'm also wondering whether the current behavior is actually useful.
modifyOtherKeys might be very useful for mapping some special key combinations. However, I don't think it's so useful for i_CTRL-V or c_CTRL-V. E.g. when editing shell scripts, batch files, Vim scripts or some other scripts, I sometimes want to emit actual control code like escape, CTRL-V, etc. (E.g. echo ^[[31mred^[[m to show a red message.)
Now i_CTRL-V_CTRL-[ inserts an escape sequence (^[[91;5u) instead of ^[. Is it really useful?

Ken Takata wrote:

I'm also wondering whether the current behavior is actually useful.
modifyOtherKeys might be very useful for mapping some special key
combinations. However, I don't think it's so useful for i_CTRL-V or
c_CTRL-V. E.g. when editing shell scripts, batch files, Vim scripts
or some other scripts, I sometimes want to emit actual control code
like escape, CTRL-V, etc. (E.g. echo ^[[31mred^[[m to show a red
message.)
Now i_CTRL-V_CTRL-[ inserts an escape sequence (^[[91;5u) instead
of ^[. Is it really useful?

I've been wondering if when using CTRL-V should insert the actual Esc
sequence or the character it encodes.  So far using the Esc sequence has
helped find out what the terminal actually sends, thus I kept that.
We could add an option, but that makes it unpredictable and complicated.
Since in this mode we can distinguish variants of CTRL-V, perhaps we can
make CTRL-V and CTRL-SHIFT-V do either of the two?
--
hundred-and-one symptoms of being an internet addict:
125. You begin to wonder how often it REALLY is necessary to get up
and shower or bathe.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

So far using the Esc sequence has helped find out what the terminal actually sends, thus I kept that.

That might be useful for debugging.

Since in this mode we can distinguish variants of CTRL-V, perhaps we can make CTRL-V and CTRL-SHIFT-V do either of the two?

Ah, that's a good idea.
I prefer CTRL-V to insert encoded character to keep backward compatibility, and CTRL-SHIFT-V to insert Esc sequence.