Volt Status

Hello everyone, as you probably noticed, Volt development has slowed substantially in the past few months.  I started working on Volt in October of 2014 and pushed things public six months later.  After putting in a ton of time into Volt, I've had to step back because of commitments with my day job.  While I hope to come back to Volt in the future, my day job project has been seeing lots of growth and the time commitment needed from me has increased.
After telling myself I was going to find more time soon for a while, I've finally realized I can't lead the project effectively with my limited time.  Since so many people are using Volt and many more are interested in contributing, I am looking for someone to step up and take over as project lead for Volt.
I want to make sure project is in good hands.  Ideally the person to take over would be:

a good ruby programmer - while I think Volt is fairly simple to use, under the hood writing things like efficient websocket servers and reactive bindings are a task best reserved for someone who has quite a bit of programming experience and some basic computer science background (though not necessarily a CS degree)  A good understanding of O notation is very helpful.
somewhat personable - managing an open source project requires interacting with quite a few people, having the ability to build community, implement good suggestions (or accept good PR's) and reject the ones that aren't good or don't fit in a kind way that still builds community is important.
a good chunk of free time.

If you think this might be you, please let me know here or message @ryanstout on https://gitter.im/voltrb/volt
Thanks!

#356


Terminal find: give some feedback when there are no results

Terminal, find widget
Search for something which has no results
The find widget does not give any feedback to the user. Notice how the editor find widget says no results in red. I understand we are trying to save space in the terminal find widget but we could still do a red border in the input field

Duplicate https://github.com/Microsoft/vscode/issues/28768


Array — Kinder

there are 2 options to keep the commit message:

Create a merge commit, or

Merge and squash, and we will still have the reference in the main,
better is first option, where we can revert easily in the main branch


Change colour iterm2, oh my zsh

Hello
I'm trying to change the colour of the suggestion. So far it's of the colour of the regular text.
I tried adding a "ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=250" command to .zshrc which didn't do anything. I also added a ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="xx" with a bright colour to a .zsh file in the ~/.oh-my-zsh/custom path. That colour now lights shows up when the autosuggestion first appears, then the text is plain white again. Something seems to overwrite the setting. I couldnt find anything on iTerm to change it.
Any ideas?
ZSH 5.7.1.,
OhMyZSH
OS X 15.3.1
iTerm2
Best
Felix

Sorry, trying to delete the "bug" label but cant seem to do that.

Also, I've identified the source: it was zsh-syntax-highlight. I ahvent gotten it to work together yet but it works fine without it.

Hello @Fealo, I had the same problem as you and with your tip I changed the loading order between the two plugins, first I loaded the zsh-syntax-highlight and then the zsh-autosuggestions and the colors started working again!! thanks!!


[CDN] az cdn endpoint rule add: Fix delivery rule creation for non-Microsoft SKU

Description

Fix delivery rule creation for non-Microsoft SKU.
Testing Guide

Add delivery caching rule for the specific extensions for Akamai/Verizon SKU

az cdn endpoint rule add -g rg -n ed --profile-name profile --order 1
--action-name CacheExpiration --match-variable UrlFileExtension --operator Any --match-values mp4 mp3
--cache-behavior Override --cache-duration 00:05:00

History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

CDN


Filter for UCL as source

Hi
I would like to be able to find UCL annotations in AmiGO by using the Source filter. However this is not possible as the source of all UCL annotations is listed as UniProt. Would it be possible to have the 'assigned by' information available as a filter?
Thanks
Ruth
@ValWood @BarbaraCzub

@RLovering I may be misunderstanding what is being asked here. For the loaded data, assigned_by is accessed by the "Contributor" filter. For example:
http://amigo.geneontology.org/amigo/search/annotation?q=*:*&fq=assigned_by:"BHF-UCL"&sfq=document_category:"annotation"
BHF-UCL | (42619)
ParkinsonsUK-UCL | (6912)
ARUK-UCL | (6893)
SynGO-UCL  | (140)

that is wonderful, sorry I missed that before. There seems to be some inconsistencies, perhaps it is my browser, your link worked great but this one from Val: http://amigo.geneontology.org/amigo/search/bioentity?q=:&fq=isa_partof_closure:%22GO:0006520%22&fq=isa_partof_closure:%22GO:0051186%22&fq=-isa_partof_closure:%22GO:0034628%22&fq=-isa_partof_closure:%22GO:0034354%22&fq=-isa_partof_closure:%22GO:0019442%22&fq=-isa_partof_closure:%22GO:0008705%22&sfq=document_category:%22bioentity%22 has no contributor option.
any thoughts?
Thanks for getting back to me so quickly
Ruth

@RLovering No problem
The issue here is that my bookmark/location is for the annotation search, while Val's is for bioentity search. As it stands now, as the cross-cut combinatorics of doing these facets for bioentities was too high (i.e. bioentity is already a grouping category for a lot of these properties, so assigned_by could be many and in that case what does one do with evidence), we only maintained them for annotations. The closest to what Val has there would be:
http://amigo.geneontology.org/amigo/search/annotation?q=*:*&fq=isa_partof_closure:"GO:0006520"&fq=isa_partof_closure:"GO:0051186"&fq=-isa_partof_closure:"GO:0034628"&fq=-isa_partof_closure:"GO:0034354"&fq=-isa_partof_closure:"GO:0019442"&fq=-isa_partof_closure:"GO:0008705"&sfq=document_category:"annotation"
Still nothing for UCL, but is you remove the isa_partof_closure: GO:0006520 filter, you can see yourselves down there in the "Contributor" facet.

The Matrix output is necessarily "gene product" rather than annotation (thats what the Matirc outputs).
I guess when the MAtrix rules are merged into the individual group reports this will need to be dealt with.
In the meantime, Ruth don't worry  I will raise tickets for any outstanding questions in the intersection annotations. I have probably done about 50%  of the term intersections  I plan to check so there shoud not be so many  more for you....


Database Deadlock on specific query

Issue
We get Database Deadlock occasionally by CC. These happen when people try to push an app. They then get a Database Error message in their CF-Push response. We have more detailed logs attached below.
Context
CF 9.0.0
Steps to Reproduce
Not able to reproduce yet, we think it may be related to cc updates.
As updates where made shortly before the error occurred this could correlate.
Expected result
No deadlocks and aborted transactions.
Current result
Users occationally get a CF-Push error saying a DB Error occured
We observed this approximately 5 times. Users are then unable to push for a few seconds up to minutes.
Without further actions this issue goes away until it comes again.
{"timestamp":1559301591.9601736,"message":"PG::TRDeadlockDetected: ERROR: deadlock detected\nDETAIL: Process 424899 waits for ShareLock on transaction 5870269; blocked by process 427227.\nProcess 427227 waits for ShareLock on transaction 5870267; blocked by process 424899.\nHINT: See server log for query details.\nCONTEXT: while deleting tuple (11,3) in relation \"builds\": DELETE FROM \"builds\" WHERE \"id\" = 18871","log_level":"error","source":"cc.db", ..... }

It is always the same query, Delete from builds.

We identified this query which is causing the deadlock.
2019-12-05 17:13:39 UTC:<IP_ADDRESS>(54880):ccadmin@ccdb:[15972]:STATEMENT: ALTER TABLE "spaces_developers" ADD COLUMN "role_guid" varchar(255), ADD COLUMN "created_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, ADD COLUMN "updated_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL
The issue seems to be related to database migration while update and in parallel we had load on the system. By this situation we could reproduce the issue. After stopping all cc worker (== stopping the load) the migration went through.

To add some context:
We noticed that the cc_worker nodes and api nodes were updated at the same time:
Task 16184818 | 13:38:02 | Updating instance cc-worker: cc-worker/e597d744-7bd6-4228-9617-cd2b2627f2d4 (0) (canary)
Task 16184818 | 13:38:08 | Updating instance api: api/0bc6d14d-a274-4f78-ac13-e213e40a7078 (0) (canary)
Task 16184818 | 13:40:56 | Updating instance cc-worker: cc-worker/e597d744-7bd6-4228-9617-cd2b2627f2d4 (0) (canary) (00:02:54)
Task 16184818 | 13:40:56 | Updating instance cc-worker: cc-worker/5c2fb9b6-f692-47e2-a481-211234c53141 (4)
Task 16184818 | 13:42:00 | Updating instance api: api/0bc6d14d-a274-4f78-ac13-e213e40a7078 (0) (canary) (00:03:52)
                     L Error: Action Failed get_task: Task c968e90c-7f40-48d3-4d74-f8c015254bb8 result: 1 of 7 pre-start scripts failed. Failed Jobs: cloud_controller_ng. Successful Jobs: sysctl, bpm, bosh-dns, syslog_forwarder, cc_uploader, policy-server.
Task 16184818 | 13:43:50 | Updating instance cc-worker: cc-worker/5c2fb9b6-f692-47e2-a481-211234c53141 (4) (00:02:54)

As bosh starts the update with the cc_workers (13:38:02) they expect that the ccdb is migrated (Error in cc_worker nodes: Sequel::Migrator::NotCurrentError: migrator is not current). However the migration has not yet started because the update of the api node (incl. migration) starts a bit later (13:38:08). Furthermore we noticed that with the occurrence of the migrator is not current error the CPU usage of cc_workers goes up to 100%.
We'll check if the parallel update of cc_workers and api nodes is an issue on our side but I thought this is some helpful information.

@reid47 would you and VAT be interested in looking into this? It sounds related to v3 roles.

Just to link things up, the matching story on the pivot tracker is https://www.pivotaltracker.com/story/show/170321550
And also other tests showed similar behaviour: https://cloudfoundry.slack.com/archives/C07C04W4Q/p1576506597004900

@FloThinksPi it looks like in February the V3 Acceleration team put out a fix for this.  Have you been able to check to see if their fix resolved the issue for you or not?

@sethboyles Thanks for notification. We will discuss this fix and come back with feedback.

I'm going to close this issue for inactivity. Feel free to re-open if you are still seeing this issue.
Thanks!
Greg


Formatting And Grammar

Fixes Linting Errors
'*' to '-'
Contractions are removed and replaced with their extended forms

I apologize in advance for all the Email Notifs I may have caused

Please do not edit markdownlint rules. They are like that for a reason.
Lighthouse check pending

I disabled the duplicate name check, and the table check

Yes and both have Implications that we don't want. Please fix the Issue, not the Check

Me when changes are merged before a review I placed asking a question about the code formatting. At least an answer would be nice.


Typo in the wiki

Under EasyRPG, it says Pico 8 where it should say EasyRPG:
"EasyRPG (Soon to be deprecated as Pico-8 has been moved to the main system section)"

Fixed.  Thank you for reporting.


Announcement: Breaking changes

Use floating window instead of native menu #224

The user should change the mapping configuration.

Change vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<C-n>', true, true, true, 'n', true) to cmp.select_next_item().
Change vim.fn.pumvisible() == 1 to cmp.visible()

Amazing i just test and it working like a charm. :)

Did the config for "<S-Tab>" change as well?

Of cource, Yes.

I trying the following mapping, but nothing happens when I press <C-Space>:
    ['<C-Space>'] = function()
      if vim.fn.pumvisible() == 0 then
        cmp.mapping.complete()
      else
        cmp.mapping.confirm({ select = true })
      end
    end,

Am I configured something wrong?

Can that be used already in conjunction with a snippet plugin?
How would the configuration look like?
Currently I'm using:
['<Tab>'] = function(fallback)
  if vim.fn.pumvisible() == 1 then
    vim.fn.feedkeys(vim.api.nvim_replace_termcodes('<C-n>', true, true, true), 'n')
  elseif vim.fn['snippy#can_expand_or_advance']() == 1 then
    vim.fn.feedkeys(vim.api.nvim_replace_termcodes('<Plug>(snippy-expand-or-next)', true, true, true), '')
  else
    fallback()
  end
end,

@hrsh7th Best to delete support post and lock the issue so only you can post here. This issue should be as clean as possible to allow users quickly pick up on breaking changes without support request interruptions. Do delete my post as well, of course.
@wimstefan no offence! :) (You only need to change two lines @hrsh7th posted, rest remains the same.)

Hey @hrsh7th could you please lock this thread and post here only if there are breaking changes so people can subscribe to get notifications? Thanks.

SourceConfig.opts is deprecated https://github.com/hrsh7th/nvim-cmp/pull/561
cmp.setup {
  sources = {
    {
      name = 'buffer',
      opts = {
        get_bufnrs = function() return { vim.api.nvim_get_current_buf() } end
      }
    }
  }
}

↓↓↓
cmp.setup {
  sources = {
    {
      name = 'buffer',
      option = {
        get_bufnrs = function() return { vim.api.nvim_get_current_buf() } end
      }
    }
  }
}

The cmp.complete arguments was changed ({ sources = ... } -> { config = { sources = { ... } }
cmp.setup {
  mapping = {
    ['<C-x><C-s>'] = cmp.mapping.complete({
      sources = {
        { name = 'vsnip }
      }
    }),
  }
}

↓↓↓
cmp.setup {
  mapping = {
    ['<C-x><C-s>'] = cmp.mapping.complete({
      config = {
        sources = {
          { name = 'vsnip }
        }
      }
    }),
  }
}

The cmp#ready autocmd renamed to CmpReady
autocmd User cmp#ready ...

↓↓↓
autocmd User CmpReady ...

Remove experimental.native_menu and add view.entries = 'native' instead.
cmp.setup {
   ...
  experimental = {
    native_menu = true
  }
  ...
}

↓↓↓
cmp.setup {
   ...
  view = {
    entries = 'native'
  }
  ...
}

Remove documentation and add window.documentation instead.
cmp.setup {
   ...
  documentation = false,
  ...
}

↓↓↓
cmp.setup {
   ...
  window = {
    documentation = false,
  }
  ...
}

NOTE: I'm planning the window configuration option will be deprecated. I think it should be merged to view configuration option.

nvim-cmp will only work on nvim v0.7.x or higher.
status: planning
The nvim v0.7.0 contains the Lua version Autocommand API.
So nvim-cmp will use it and drop supporting the previous version of nvim.
Related: https://github.com/hrsh7th/nvim-cmp/pull/844

source[n].max_item_count is removed
This is minor breaking change.
The source[n].max_item_count is now removed.
Now performance.max_view_entries can be used for performance.


Example shows only compare and return instructions

Type of issue
Typo
Description

Description is written as if example bellow should be more verbose but is shows only compare and return instructions.
Page URL
https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/runtime
Content source URL
https://github.com/dotnet/docs/blob/main/docs/core/whats-new/dotnet-9/runtime.md
Document Version Independent Id
13391d3d-7426-ac0c-d41c-f1754a1baffc
Article author
@gewarren
Metadata

ID: b651446d-aea3-1b80-d99a-9033b794c387
Service: dotnet-fundamentals

Related Issues

@amanasifkhalid Can you look at this issue when you get a chance?

Description is written as if example bellow should be more verbose but is shows only compare and return instructions.

@bravequickcleverfibreyarn could you please elaborate on how the description implies the below example should be more verbose? The way I read it, the "updated assembly" is what the code looks like after the aforementioned JIT optimizations kicked in. Above the snippet you linked, the blog post includes the unoptimized code with the heap allocations, conditional moves, etc.

@gewarren do you think it would be clearer if we rewrote the explanation as "In this example, the compiler now avoids the heap allocations, and it also evaluates the expressions..." to avoid the "not only... but..." form?

I shall elaborate. I would expect that example is showing more lines of optimized output. Namely how does inlined code looks w/o boxing instructions.

Namely how does inlined code looks w/o boxing instructions.

I see. You're correct that the code should initially become more verbose from the JIT inlining the Compare method. However, after the JIT unboxes x and y, it can determine that x and y are both integers, and their values are known. Because the JIT knows the values of x and y, it no longer needs the Compare method at all; the JIT can const-eval x == y at compile-time. So it determines 3 != 4, which implies result is false, which implies we should return 100 -- hence the small amount of assembly generated at the end.
The clause "but it also evaluates the expressions x.Equals(y) and result ? 0 : 100 at compile time" is doing some heavy lifting here. I suppose we can add some more detail after it, like "Because the JIT can now determine that x and y aren't equal, it knows result will be false, which means the method should just return 100." @bravequickcleverfibreyarn would this help clarify the example?

Yes, that sounds fine. I did not even get a clue that I should figure this out.

@gewarren are you able to open a PR for this, or would you like me to?

@gewarren are you able to open a PR for this, or would you like me to?

If you could, that would be awesome. Thanks!


separate cred secrets for azure/gcp/aws

This allows for aws, gcp, and azure cred secrets to coexist on the same velero instance. Only one set of credentials per provider is still a limitation, but this allows the use of multiple providers at once for a given controller instance.
This PR requires a (forthcoming) mig-operator PR for azure/gcp use, since without it velero won't look in the right location for (or mount) those provider secrets.

Required mig-operator PR: https://github.com/fusor/mig-operator/pull/166


feat: registry globally configurable

:gift: registry globally configurable
Deferred evaluation of cluster type is preserved by making registry a helper in the cmd package and a calculated field of the global config struct.
/kind enhancement

/lgtm
/approve

/approve

@lance PTAL

/lgmt
/approve


ForEach is missing

ForEach appears in the side-bar TOC, but not on this page.

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

ID: 41a46705-6851-dc23-88d0-9a00da1feeef
Version Independent ID: 6b01edf7-4feb-717f-1c95-8c356b77b61a
Content: Microsoft.Quantum.Arrays - Q# reference - Microsoft Quantum
Content Source: api/qsharp/Microsoft.Quantum.Arrays.yml
Product: quantum
GitHub Login: @anpaz-msft

Nevermind.  It's in the Operations section.


bump release

Codecov Report

Merging #276 (2585986) into main (b997441) will not change coverage.
Report is 2 commits behind head on main.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #276   +/-   ##
=======================================
  Coverage   83.00%   83.00%
=======================================
  Files          29       29
  Lines        3796     3796
=======================================
  Hits         3151     3151
  Misses        645      645

Files Changed
Coverage Δ

preliz/__init__.py
100.00% <100.00%> (ø)


Wagtail 5.0 upgrade

PR: https://github.com/ixc/wagtail-instance-selector/pull/35

https://github.com/ixc/wagtail-instance-selector/pull/35#issuecomment-1736719541


Adding a plugin-config to define open/closed by default

Is there any chance a plugin-config entry can be made for this plugin so that we can specify which chapters to open/close by default? It can be very useful to not have them always be open by default.

Yes this would be helpful or a way to specify a url query parameter that specifies whether it is open or closed.

in demand.

Closing this issue as we are archiving the project


readme: Fix upstream XGU branch name

I had a few mishaps in the recent past when interacting with git, the old XGU branch had its PR closed.
As the opportunity rised, I opted to rename the branch and do a few structural changes.
This PR aims to reflect said changes.

Thanks a lot!


feat: Enable deployment from release-service PRs

e2e runs are now running in release-service PRs.
This is copied and adapted from what's done
for build-service.
See: https://issues.redhat.com/browse/HACBS-1669

/retest

please also update preview-template.env

@psturc thanks. Fixed. Please check.

/lgtm

/retest

/retest

/test

/test

/lgtm


What are the design and implementation principles of  edgelessrt

Hi, "Edgeless RT is an SDK for Trusted Execution Environments (TEE) built on top of Open Enclave."
It also looks like a libos, because it supports Go/C/C++/Rust apps, how does edgelessrt do it?
So, what is the differences between edgelessrt and ego?
Are there any documents showing the design principles of edgelessrt or ego?
Thanks.

Hi @bronzeMe,
You can think of Edgeless RT as Open Enclave with many more POSIX functions and syscalls implemented. In this regard, it's similar to a libos. On the other hand, you must recompile the application and it must be fully statically linked. Primary advantage compared to a libos is a smaller TCB. Disadvantages are more effort and less compatibility with existing apps.
Go and experimental Rust support are achieved by compiling the Go/Rust code to a static library and linking it to a C/C++ project (which can be a stub).
As this can be quite cumbersome, we created EGo. While the inner workings are similar, EGo hides most of this from the user and offers a workflow that is very similar to the usual Go workflow.
You can find some notes about its principles on these pages:
https://docs.edgeless.systems/ego
https://docs.edgeless.systems/ego/#/knowledge/model

@thomasten , thank you so much, it's helpful .

Hi， @thomasten ， by the way, does EdgelessRT support run a native C app without any modification to this C app?

It depends. As for the other languages, you must at least recompile and fully statically link the C app. Some syscalls are missing (e.g., everything around fork/exec), some are limited in functionality (like mmap).
As an example, for https://github.com/edgelesssys/edgelessdb we run MariaDB and RocksDB with Edgeless RT. We did modify them a bit, but mostly for I/O security and not compatibility. (In particular, Edgeless RT doesn't have automatic file encryption.)


Update BigQuery source in bigquery_tornadoes example

Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

R: @pabloem
Please also try PostCommit test :).

retest this please

Run Python 3.5 PostCommit

Run Python PreCommit

retest this please

retest this please

retest this please

Run Python 3.5 PostCommit

Adding project auto-inference here; https://github.com/apache/beam/pull/11560

Run Python 3.5 PostCommit

Should I remove the project option and use project auto-inference?

Agh it's looking like it's a more complicated problem. I'm working on
project inference, and I'll add ReadFromBQ to tornadoes in that PR. Is that
reasonable Yichi? So sorry about the trouble...
On Tue, Apr 28, 2020 at 8:41 PM Yichi Zhang<EMAIL_ADDRESS>wrote:

Should I remove the project option and use project auto-inference?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/beam/pull/11545#issuecomment-620973239, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ5Z3BUOU3BLLVK3WFZJUDRO6OVBANCNFSM4MSMFGLA
.

Agh it's looking like it's a more complicated problem. I'm working on project inference, and I'll add ReadFromBQ to tornadoes in that PR. Is that reasonable Yichi? So sorry about the trouble...
…
On Tue, Apr 28, 2020 at 8:41 PM Yichi Zhang @.***> wrote: Should I remove the project option and use project auto-inference? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#11545 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ5Z3BUOU3BLLVK3WFZJUDRO6OVBANCNFSM4MSMFGLA .

SGTM, thanks for the help Pablo:)


first run fails on macOS 10.14

Note: for support questions, please email us or contact us on Gitter. This repository's issues are reserved for feature requests and bug reports.

I'm submitting a ...

[x] bug report
[ ] feature request
[ ] support request => Please do not submit support request here, see note at the top of this template.

Do you want to request a feature or report a bug?
Bug

What is the current behavior?
The first time that the application is run from a fresh install/clone of the repo, it shows a blank white Electron window with nothing happening. Terminal output might indicate an osquery issue, but I'm not too familiar with the codebase so I can't say for sure.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

Clone repo
Run yarn install
Run yarn start
Blank Electron window shows up:
Quit app (ctrl-c)
Restart server with yarn start
Works as expected

What is the expected behavior?
Functional app on first run

What is the motivation / use case for changing the behavior?
Users would likely be frustrated by a seemingly broken app

Please tell us about your environment:

Stethoscope Version: 1.2.5
Platform:

[x] Mac
[ ] Windows

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

I'm on the macOS 10.14 beta, so it's possible that this is the result of some packages that haven't been updated yet.

Update: just ran the clone/install/start process again, and it didn't load the blank page, but instead gave me a Request timeout error.


Language Change Not Reflected After Signing In

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

Version Number: v9.0.1-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

If already signed in, sign out from the app and change the language.
Add a new Gmail account and sign in.
Notice that the language inside the app does not reflect the changed language.

Expected Result:
When the language is changed and the user signs in, the app should display the new language.
Actual Result:
When the language is changed and the user signs in, the app does not display the changed language.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[x] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/433bb2bf-02d8-436f-808c-7e3f12aecc47

View all open jobs on GitHub

@kevinksullivan I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.

We think this issue might be related to the #collect project.

asking about this here
https://expensify.slack.com/archives/C01SKUP7QR0/p1719419321011069


Scheduler refactoring

Big pull request which in theory shouldn't change any behavior (only done sanitycheck over tests/kernel, and only on x86 so far though!).
The net effect is to eliminate most of the use of our fine-grained scheduler tooling in favor of coarser functions with clear semantics, easier replaceability, and (most importantly) clean synchronization expectations instead of "must be called with irq_lock held" all over the place.  Almost everything comes down to:

Pend the current thread and context switch to whatever is next
Unpend one thread from a wait_q and make it runnable
Unpend a specific thread from wherever it is sleeping
Check the scheduling context and context switch ("_reschedule") if needed

@lpereira noticed that I somehow had "restored" an ancient gerrit git hook and was emitting patches with Change-Id: headers.  Fixed.

Refresh this, having founds some spots where some "obvious cleanup" was not a 1:1 refactoring.

Codecov Report

Merging #6910 into master will decrease coverage by 0.05%.
The diff coverage is 97.95%.

@@            Coverage Diff             @@
##           master    #6910      +/-   ##
==========================================
- Coverage   58.67%   58.62%   -0.06%
==========================================
  Files         462      462
  Lines       47321    47237      -84
  Branches     8771     8757      -14
==========================================
- Hits        27765    27691      -74
+ Misses      15724    15722       -2
+ Partials     3832     3824       -8

Impacted Files
Coverage Δ

lib/posix/pthread_common.c
84.61% <ø> (-1.1%)
:arrow_down:

include/kernel.h
94.73% <ø> (ø)
:arrow_up:

...ycle/lifecycle_api/src/test_threads_cancel_abort.c
88.33% <ø> (-3.53%)
:arrow_down:

.../kernel/threads/lifecycle/lifecycle_api/src/main.c
75% <ø> (ø)
:arrow_up:

kernel/include/ksched.h
91.4% <100%> (+1.03%)
:arrow_up:

lib/posix/pthread_barrier.c
100% <100%> (+8.33%)
:arrow_up:

kernel/sem.c
93.61% <100%> (-0.51%)
:arrow_down:

kernel/timer.c
90.12% <100%> (-0.13%)
:arrow_down:

kernel/queue.c
87.65% <100%> (+5.54%)
:arrow_up:

kernel/msg_q.c
95.83% <100%> (+2.16%)
:arrow_up:

... and 15 more

Continue to review full report at Codecov.

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

What has changed since the last time this was reviewed?

Rebased


How to run on Localhost?

Hi, how do you run this framework on Localhost, it seems not to be working. Thanks.

Hi, have you pointed your host file to the /www/ folder? The index.php file is the one that calls the framework which then does all the hard work. Hopefully that gets you going!
I have it set up with MAMP locally and tested on Ubuntu, so not sure how well it works on other operating systems.

The Wayfinder is located in my http://localhost/projects/Framework/Wayfinder/, if I go to the folder /www/ it says

Notice: Undefined property: Wayfinder::$url in C:\xampp\htdocs\projects\Framework\Wayfinder\framework\Wayfinder.php on line 355
And gives 404 not Found

Ah ok. So Wayfinder uses the URL to route your request. It has to be the root of your project. http://localhost has to map to the www folder for it to work.

Can it be possible to put a $base_url="" somewhere in the code, to let Wayfinder know where to start in the case of the URL.
Some other frameworks like Laravel, Codeigniter, Slim has this.

I'll have a think about it. My initial reaction was to say no but maybe it is a useful thing to offer. I'll update you if it happens!

Thank you so much.


Fix the canonical URL on the Installation component

Closes https://github.com/wellcomecollection/wellcomecollection.org/issues/9219

Is this because installations/[id] does not exist?

Is this because installations/[id] does not exist? Did it use to?

It doesn't exist, and on a brief glance it never did.
We had a discussion about it on Slack here: https://wellcome.slack.com/archives/C8X9YKM5X/p1675680531103679


two different syntaxes of product name make failling om-cli configure-product

Hello
We're using tile-config-generator to configure our tiles. We noticed that the entry defining the product name was added with two different syntaxes as you can see it below.
product_name: cf
product-name: cf
product_version: 2.1.17
But when we use the new version of om cli (version 0.46.0), this makes om configure-product fail because it doesn't support about this entry product_name.
Regards

Can you provide the entire error message that you are getting from om.  product_name and product-name were being duplicated to ensure backward compatiblity

Removed in 0.0.12 - https://github.com/pivotalservices/tile-config-generator/releases/tag/v0.0.12

I confirm this solved the issue.
Thanks and sorry for my delayed reply.


The vs code task "Start API and Web" does not work any more

[x] Make sure you've installed the latest version using instructions in the wiki

Output from azd version
Run azd version and copy and paste the output here:
azd version 1.4.1 (commit 1cbed85cf47ed235b5ed31868eda79619525bfcc)
Describe the bug
I am trying to run the task "Start API and Web" using the todo-nodejs-mongo-aks template. When I do "Shift + cmd + p" -> Tasks: Run task, I get this error in the OUTPUT tab (before selecting the actual task)
Error: the task 'Workspace: Restore API' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore api,",
    "idRandomizer": 0.39070389774816827,
    "problemMatcher": [],
    "label": "Workspace: Restore API"
}
Error: the task 'Workspace: Restore Web' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore web,",
    "idRandomizer": 0.7531014802740759,
    "problemMatcher": [],
    "label": "Workspace: Restore Web"
}
Error: the task 'Workspace: Web npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.3778032979344932,
    "problemMatcher": [],
    "label": "Workspace: Web npm start",
    "detail": "Helper task--use 'Start Web' task to ensure environment is set up correctly"
}
Error: the task 'Workspace: API npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.9120319229664988,
    "problemMatcher": [],
    "label": "Workspace: API npm start",
    "detail": "Helper task--use 'Start API' task to ensure environment is set up correctly"
}
Error: the task 'Workspace: Restore Web' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore web,",
    "idRandomizer": 0.6341149130277672,
    "problemMatcher": [],
    "label": "Workspace: Restore Web"
}
Error: the task 'Workspace: Web npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.18705709546311455,
    "problemMatcher": [],
    "label": "Workspace: Web npm start",
    "detail": "Helper task--use 'Start Web' task to ensure environment is set up correctly"
}
Error: the task 'Workspace: Restore Web' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore web,",
    "idRandomizer": 0.36323288159932354,
    "problemMatcher": [],
    "label": "Workspace: Restore Web"
}
Error: the task 'Workspace: Web npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.9128663822720793,
    "problemMatcher": [],
    "label": "Workspace: Web npm start",
    "detail": "Helper task--use 'Start Web' task to ensure environment is set up correctly"
}
Error: the task 'Workspace: Restore API' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore api,",
    "idRandomizer": 0.8271939443913685,
    "problemMatcher": [],
    "label": "Workspace: Restore API"
}
Error: the task 'Workspace: Restore Web' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore web,",
    "idRandomizer": 0.699224959049467,
    "problemMatcher": [],
    "label": "Workspace: Restore Web"
}
Error: the task 'Workspace: Web npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.47869063647859744,
    "problemMatcher": [],
    "label": "Workspace: Web npm start",
    "detail": "Helper task--use 'Start Web' task to ensure environment is set up correctly"
}
Error: the task 'Workspace: API npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.6953999379453406,
    "problemMatcher": [],
    "label": "Workspace: API npm start",
    "detail": "Helper task--use 'Start API' task to ensure environment is set up correctly"
}
Error: the task 'Workspace: Restore API' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore api,",
    "idRandomizer": 0.8867094619014328,
    "problemMatcher": [],
    "label": "Workspace: Restore API"
}
Error: the task 'Workspace: Restore Web' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,azd restore web,",
    "idRandomizer": 0.7523203600364023,
    "problemMatcher": [],
    "label": "Workspace: Restore Web"
}
Error: the task 'Workspace: Web npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.3410895416577724,
    "problemMatcher": [],
    "label": "Workspace: Web npm start",
    "detail": "Helper task--use 'Start Web' task to ensure environment is set up correctly"
}
Error: the task 'Workspace: API npm start' neither specifies a command nor a dependsOn property. The task will be ignored. Its definition is:
{
    "type": "shell",
    "id": "shell,npm run start,",
    "idRandomizer": 0.7469761562245649,
    "problemMatcher": [],
    "label": "Workspace: API npm start",
    "detail": "Helper task--use 'Start API' task to ensure environment is set up correctly"
}

This is my tasks.json:
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Start Web",
            "type": "dotenv",
            "targetTasks": [
                "Restore Web",
                "Web npm start"
            ],
            "file": "${input:dotEnvFilePath}"
        },
        {
            "label": "Restore Web",
            "type": "shell",
            "command": "azd restore web",
            "presentation": {
                "reveal": "silent"
            },
            "problemMatcher": []
        },
        {
            "label": "Web npm start",
            "detail": "Helper task--use 'Start Web' task to ensure environment is set up correctly",
            "type": "shell",
            "command": "npm run start",
            "options": {
                "cwd": "${workspaceFolder}/src/web/",
                "env": {
                    "WEB_APP_API_BASE_URL": "http://localhost:3100",
                    "BROWSER": "none"
                }
            },
            "presentation": {
                "panel": "dedicated",
            },
            "problemMatcher": []
        },

        {
            "label": "Start API",
            "type": "dotenv",
            "targetTasks": [
                "Restore API",
                "API npm start"
            ],
            "file": "${input:dotEnvFilePath}"
        },
        {
            "label": "Restore API",
            "type": "shell",
            "command": "azd restore api",
            "presentation": {
                "reveal": "silent"
            },
            "problemMatcher": []
        },
        {
            "label": "API npm start",
            "detail": "Helper task--use 'Start API' task to ensure environment is set up correctly",
            "type": "shell",
            "command": "npm run start",
            "options": {
                "cwd": "${workspaceFolder}/src/api/",
                "env": {
                    "NODE_ENV": "development"
                }
            },
            "presentation": {
                "panel": "dedicated",
            },
            "problemMatcher": []
        },

        {
            "label": "Start API and Web",
            "dependsOn":[
                "Start API",
                "Start Web"
            ],
            "problemMatcher": []
        }
    ],

    "inputs": [
        {
            "id": "dotEnvFilePath",
            "type": "command",
            "command": "azure-dev.commands.getDotEnvFilePath"
        }
    ]
}

@bwateratmsft @vhvb1989 can you take a look?

@thomasofdenmark , can you confirm if you have the AzureDeveloperCLI - VSCode extension installed?  (and also what version it is)
Something like:

@thomasofdenmark Those errors in the Output window are a known VSCode bug and you can ignore them.

@vhvb1989 Yes it is installed. I have version 0.7.0.

It seems like it is the "Start API" and "Start Web" tasks that is doing nothing. The other ones starts up in the TERMINAL tab.

Does F5 (or the command "Debug: Start Debugging") work? The tasks are meant to be consumed by VSCode to enable debugging.

Does F5 (or the command "Debug: Start Debugging") work? The tasks are meant to be consumed by VSCode to enable debugging.

No, that does not work either.

This seem to be the same issue. When I replace "${input:dotEnvFilePath}" with "${workspaceFolder}/.azure/your-azure-env-name/.env" it works. So mabye the issue is with the "command" in the tasks.json:
"inputs": [
        {
            "id": "dotEnvFilePath",
            "type": "command",
            "command": "azure-dev.commands.getDotEnvFilePath"
        }
    ]

Good find, I'll take a look.

This looks to be a regression in the Azure Dev CLI itself. Compare the output from 1.3.1 vs 1.4.1:
1.3.1: azd env list --output json
[
  {
    "Name": "bwatertestenv",
    "IsDefault": true,
    "DotEnvPath": "D:\\Sandbox\\AzdTaskTest\\.azure\\bwatertestenv\\.env"
  }
]

1.4.1: azd env list --output json
[
  {
    "Name": "bwatertestenv",
    "HasLocal": true,
    "HasRemote": false,
    "IsDefault": true
  }
]

The 1.4.1 output is missing DotEnvFilePath, which was present in 1.3.1. This is exactly what is being returned by the command--so the command is now returning undefined, which I guess VSCode takes to mean aborting the run of the task.
@wbreza do you know about the removal of that property?

@wbreza do you know about the removal of that property?

@bwateratmsft This was unintentionally removed.  Posted PR #2858 with a fix.


Feature/game log

adds necessary features for an Artemis UI integration
adds support for superclasses to the LambdaVisitor

Wrong branch


feat: links rendering tracking

Restore tracking of linked entities rendering in the new rich text editor

How do you feel about a meaningful Cypress test in to test this on an entity of each type?
This would require us to load the RTE with a RT doc upfront in sdk.field.getValue() :thinking: That's the same idea we'll be facing in this ticket actually.


App created by Archive cannot run on devices.

I face with a strange problem, I can Run or Build my project which added the ios-charts but when I try to Archive, it's Archive successful, after Export by Adhoc and install on devices, the app with force close when open. Any one face same problem?

does the adhoc means in-house distribution?
If so, you need to check your production cert, checkout:http://stackoverflow.com/questions/30867698/app-with-objective-c-and-swift-code-crash-at-launch-in-release-mode-debug-mode/30881865#30881865

@liuxuan30 Yes, you right! I use the in-house distrubution. Look like your explaination is make sense, I'll try that solution on monday and feedback soon. Thank you!

@hxdev it can be quickly checked if you take a look at your cert in key chain. Once you can confirm you lack the attribute, then the solution is there. All the information and logs and checking steps are listed in stack overflow and #154.

It could also be related to not adding as an Embedded Framework, see README

@danielgindi Can it be archived successfully without adding as embedded framework? I wonder if not adding as embedded framework, it won't build at all.

If you are building as a Framework, and have not dragged the code to the project, then it must be added as an Embedded framework. Otherwise the compiler does not actually embed the framework's code in the project - assuming it is available in the OS like any other framework - and will crash on runtime when it cannot load the library.

It is interesting that compiler does not complain framework is not found while compiling...

It is compiling of course because it is found... But it does not embed it...

I see. Thanks. Wait for @hxdev to reveal the answer!

Sorry for lately feedback, I'm working on a project with provisioning file was provided by customer, I've check the OU property and see that it's missng, I'll try @liuxuan30 solution.
@danielgindi My project write in ObjC and support iOS 7+, so that mean I must drag the Charts folder to my project only or drag folder and the drag the Charts.xcodeproj too? I've create a new target with name "Adhoc-Debug" and Archive with this target, do I need to add an target "Adhoc-Debug" for Charts project too? Because sometimes I got the "Charts/Charts.h file not found" when Archive or run UnitTest.

You need to go to the "Build Phases" of your "Adhoc-Debug" target and add the Charts library there like you add any framework

Sorry for my mistake, I mean the Build Config not Target, it's duplicate of Debug build config.
So for UnitTest target, I also need to add Charts to the Link Binary With Library?

Whenever you want to run something that uses a framework which is not built in in the OS, you need to link to it (Embedded Frameworks, Link Binary With Library, etc.)

Finally, it's working perfect with new provisioning file which support Swift. Thanks so much for your support @liuxuan30

No problem!

@liuxuan30 thank you. This thread helped me to solve my problem. :+1:

@abraxascorner no problem, glad to hear it works and helping more and more people.


notmuch: 0.34.3 -> 0.35

Motivation for this change
notmuch: 0.34.3 -> 0.35
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

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

1 package failed to build:

alot

13 packages built:

aerc
afew
astroid
i3status-rust
lieer
meli
muchsync
neomutt
notmuch
notmuch-addrlookup
notmuch-mutt
python310Packages.notmuch
python39Packages.notmuch


How to run GAIL without environment

Hello,
I just have a expert trajectories and no Environment/Simulator for my problem.
I was able to convert my data into the required format
actions (126, 4) episode_starts (127,) rewards (0,) obs (126, 368) episode_returns (14,) Total trajectories: 10 Total transitions: 99 Average returns: 17.07973432764945 Std for returns: 13.725064365739867
I then try to run the GAIL implementation
model = GAIL('MlpPolicy', 'Pendulum-v0', dataset, verbose=1)
This requires an environment. I tried using None. That did not work.
Any suggestions or helps greatly appreciated !
Thanks!

You must have obtained your data from certain environment right? I think you should run it at least in an environment similar to the one from which you obtained your expert data. Anyway, if you don't mind could you share how did you format your expert data? I am quite confused just by looking at the downloaded expert data provided.

@zyzhang1130 Thank you for your reply. My data was obtained from a very complex environment that does not have a simulator. It is all observed data.
I created the data from the observed data which is in the following format:
id, time, observations, actions,reward. I have over 10,000 such rows of time series data. So, for each id I created an episode. Converted it into the required format.i.e., when a new id is encountered a new episode is started.

@bhavikajalli Conceptually an agent should interact with some environment. Because the expert data are essentially state-action pairs, without an environment, I feel it is not possible for the agent to learn a policy and to improve upon it.

By the way did you follow this format when creating your expert data?{
'ep_rets': np.array with shape (1500,),
'obs': np.array with shape (1500, T, O),
'rews': np.array with shape  (1500, T),
'acs': np.array with shape (1500, T, A)
}


Unable to save tags when using inline blocks

After creating a tag, clicking anywhere, including the save button will clear the value.  Happens only when block is inline.  Repo here https://github.com/swytch/bugs

"tags" aren't a thing that exist in this module. I'm assuming, based on the repository you've linked to, that you mean tags from the silverstripe/tagfield module.
In the future, please include all relevant information in the description of the issue itself, including reproduction steps.
In this case, I have been able to reproduce this issue.

I hope this issue was solved by this PR as part of this issue


Added textarea as form field

fixes #116.
Adds the possibility to annotate your str field in the Pydantic model as Textarea, which renders it accordingly in the frontend.

awesome, thank you so much.


Support --api_only=false for bintray access key creation

The bt access-keys create doesn't provide api_only flag

Thanks @gschueler.
We'll add this option to the bt access-keys create command.

@gschueler, JFrog CLI 1.10.0 has been released and includes the --api-only flag to access key creation in Bintray.
You can also use the new JFrog CLI documentation using the following command:
jfrog bt access-keys --help

@gschueler, with your permission, I'm closing this issue.

👍  thanks


Include CSS in dist

Would it be possible to ship the CSS stylesheet as a part of the package?
I can copy-paste it myself, but it might be nice to include it in the bundle.

@cgatian we had a similar discussion not so long where I talked about the pro and cons I see in adding a CSS to the package itself: https://github.com/chrisweb/rehype-github-alerts/discussions/9#discussioncomment-11284610
So tldr I'm not convinced this would be an improvement
If you have to copy paste the CSS from a Readme that has quite good visibility (gets seen easily by people wanting to use the package) versus having the CSS in a folder in the package itself (where it might get overlooked and would probably need to get mentioned in the readme anyway), is that really better? I mean a CSS file would not get imported, it would just be there in some folder and then the dev would need to copy paste the CSS from that file to his own CSS (or copy and eventually transform it into one of the many options you have when it comes to applying CSS / styling in a Nextjs/Reatc project)

Yeah, I was just thinking that if the structure of the DOM this plugin outputs changes, it might be nice to keep the styles in lockstep.
Frameworks sometimes rely on a setup step to include their CSS within your page, so I don't think this is asking for something out of the ordinary. I'm not here to try to convince you; I think what you have works. This is just a suggestion.


[REEF-1027] Remove old dependencies from Tang by making Tint project

This PR removes old reflections/guava/javassist dependencies from Tang
by splitting Tint as a separate project.
JIRA:
REEF-1027
Pull request:
This closes #

The failure, WatcherTest.testEventStream, on one of Travis CI  is not relevant to this PR.

I will test and merge.

Thank you @markusweimer !


Moved demo dependencies to devDependencies

ref #17

Thanks for this @ColinEberhardt ! Would be also possible to define license: "Apache-2.0" across all package.json files of the repo? TY!

Thanks for this @ColinEberhardt ! Would be also possible to define license: "Apache-2.0" across all package.json files of the repo? TY!

I believe this has been done by https://github.com/ScottLogic/openfin-react-hooks/pull/19 or have we missed a spot? :)

Thanks for this @ColinEberhardt ! Would be also possible to define license: "Apache-2.0" across all package.json files of the repo? TY!

I believe this has been done by #19 or have we missed a spot? :)

Yes! Sorry I missed the PR.


Fix: support Qualified Wildcard in count aggregate function

Which issue does this PR close?
Closes #11323
Rationale for this change
What changes are included in this PR?
Are these changes tested?
Are there any user-facing changes?

🚀


changed how text.concordance() treats width and lines

Width and Lines arguments are now taken into account.
Fix for #2024 issue.

Created new (the right one) pull request #2026 . Please, ignore that.


C api for setting spec constants

There are functions that depend on the values of specialization constants (for example, get_declared_struct_member_size). There is no way to get the correct result in the C API because there is no API for setting specialization constants.

It also helps with name unification for glsl. I can generate a name for a struct based on a hash of all its members. But if the element is an array with a length that is a specification constant (or even an arithmetic operation of specification constants), I can't generate a hash for that member without knowing the effective size of the array.


Update qhub-dask version to 0.3.13

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

Absolutely lets bump the dask/distributed versions! We need to make sure that before the release we change https://github.com/Quansight/qhub/blob/main/qhub/template/{{ cookiecutter.repo_directory }}/image/dask-worker/environment.yaml to match the version


Update chart name with charts

Type of change:

[ ] Bugfix
[ ] New feature provided
[ ] Improve performance
[ ] Backport patches

What this PR does / why we need it:

Pre-submission checklist:

[ ] Did you explain what problem does this PR solve? Or what new features have been added?
[ ] Have you added corresponding test cases?
[ ] Have you modified the corresponding document?

Codecov Report

Merging #98 (2914ed9) into main (ffb31ea) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #98   +/-   ##
=======================================
  Coverage   51.49%   51.49%
=======================================
  Files           2        2
  Lines         268      268
=======================================
  Hits          138      138
  Misses        128      128
  Partials        2        2

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


New algorithm ArrayLimitedQueue added

Checklist

[x] I've looked at the contribution guidelines.
[x] This pull request is complete and ready for review.

Description
This collection is convenient because it combines the functionality of other data structures. It also has a user-friendly interface and dynamic properties. The best example to use is the table(UITableView) with the "opening" sections.

@kelvinlauKL Hi, I'm here again and intend to finish this job. I fixed the difficult one in the work in the DexDesign business. I do not think it's worth changing the type of internal storage, because in this algorithm there is access to the center and the array is most convenient for this. Let's continue our discussion to complete the work.

Hey @SeRG1k17, great to hear from you again.
I took another look at the code, and the amount of removeFirst calls strongly suggests to me that an internal LinkedList will be a huge win in terms of performance.
That being said, let's revisit the internal storage topic a bit later. For now, I want to focus on semantics. To start, could you update the code across your files? I'm looking at the files for this PR and noticed that there are two different implementations of ArrayQueueLimited.
Looking forward to getting this merged!

@kelvinlauKL check it now

@kelvinlauKL I reworked the algorithm into a linked list. BUT I faced one problem, maybe you will help me solve it:
i need use it func for two functions in my algo
    //Returns the index of an item if it exists
    public func indexOf(item: T) -> Int? {
        return list.index(of: item)
    }

But linkedList algorithm cant compare two nodes

Hey @SeRG1k17
Sorry for dropping the ball on this one. Could you check and let me know the error message for that line?

Closing due to inactivity.


JSON IAM Controller Policy

Is an existing page relevant?
getting started
What karpenter features are relevant?
Install and getting started documentation.
How should the docs be improved?
By having the karpenter-controller IAM policy, and a description of, readily available in json format for a user to review and maybe take away for a more custom install. Perhaps https://github.com/aws/karpenter/tree/main/hack/iam would be a good place?
Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

We're wary of exposing something like this, since users will take a dependency on it and we will have an implicit contract to maintain it. We currently expose this information via the getting started guide, and are aiming to keep that as the source of truth to minimize the surface of things we need to maintain/test.

@ellistarn i disagree.
folks, like myself, community members, already try to keep up with PRs here to update https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/2cd89ecc/modules/kubernetes-addons/karpenter/data.tf#L7-L25 and https://github.com/terraform-aws-modules/terraform-aws-iam/blob/c6adf42/modules/iam-role-for-service-accounts-eks/policies.tf#L508
when new policies like this appear , we have to scramble to update those.
having a source of truth in code would be helpful to refer too.

@ellistarn I disagree, also. The Getting started guide just says to create an IRSA, it does not specify what policy to create or even give a reference to where to find the required permissions. I found this issue because the code I am using is outdated, Karpenter is getting "access denied" errors, and I'm still looking for what I need to add.
For example, the eksctl section says
eksctl create iamserviceaccount \
  --cluster "${CLUSTER_NAME}" --name karpenter --namespace karpenter \
  --role-name "${CLUSTER_NAME}-karpenter" \
  --attach-policy-arn "arn:aws:iam::${AWS_ACCOUNT_ID}:policy/KarpenterControllerPolicy-${CLUSTER_NAME}" \
  --role-only \
  --approve

but says nothing about where that KarpenterControllerPolicy-${CLUSTER_NAME}" policy came from. I need some better guidance.

Thanks for the feedback. This came up in working group this week too. We'll see what we can do to expose something that can be relied on.

so now all we need is a CI job that generates these JSONs and places them in git

@Nuru it is attached to the service account
kind: ServiceAccount
apiVersion: v1
metadata:
  name: karpenter
  namespace: karpenter
  uid: 07bb3434-399c-41e0-b6cd-454f83a0a10d
  resourceVersion: "7830"
  creationTimestamp: "2022-12-08T17:27:20Z"
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::XXXXX:role/karpenter-irsa
secrets:
- name: karpenter-token-bgvgm
automountServiceAccountToken: true

As I don't use eksctl or CloudFormation the current getting started docs aren't a lot of use to me, I distinctly remember that the docs used to be more comprehensive than this?
I would expect the primary documentation to use the basic tooling with extended docs for additional tools (Terraform would likely have a greater audience than eksctl and definitely greater than CloudFormation); so the aws CLI and kubectl should be the only prerequisites. IMHO as eksctl used for IRSA removes control for the ServiceAccount from the Helm chart this should be called out as an anti-pattern used for convenience.
The hard requirements for consuming component like this would be as follows.

CRDs in repo to be referenced by release tag (this is good)
IAM policy as JSON in repo to be referenced by release tag (I can't see this)
Minimum required steps (some of the steps are not actually required if provisioners are configured)

We added a new page that details the cloudformation.yaml used in the Karpenter Getting Started guide. It will be published with v0.32, but is currently available in preview here: Cloudformation. This should help  if you want to use tools other than CloudFormation to set up Karpenter controller permissions. I'm going to close this issue, but feel free to reopen it if there is more that you would like to see in this area.

@chrisnegus Thank you for the documentation. The explanations of why Karpenter needs what permissions, and commentary on what the permissions actually grant, are very helpful.
Nevertheless, I'd ask you to re-open this issue because we are still missing what was originally requested: the required IAM Polic(y/ies) in JSON format. All the official AWS documentation provides policies in JSON format, so tools have a well-documented way of creating policies from JSON. People not already using Cloudformation do not want to add Cloudformation to their tool chain in order to create a policy.
Currently I am piecing together the policy to use in Terraform from the source code maintained by terraform-aws-modules, but I do not like relying on a third party to provide security policies like this.  Plus that code has variables interpolated that I do not have set, so I cannot automatically update my code based on updates to that code.
For comparison, consider the AWS Load Balancer Controller project, which provides links to downloadable JSON policies in their documentation. While I would prefer that the policy be available via the Helm chart, this is at least something I can easily automate without needing to use a new tool just for that.

Hey @Nuru, looks like the initial block for the controller policy is in CFN, but each of the required policies are in JSON. Are you able to conjoin these together to form your JSON policy? The policies are kept separate so that users are aware of what each policy is needed for. Is this sufficient?

Hey @Nuru, looks like the initial block for the controller policy is in CFN, but each of the required policies are in JSON. Are you able to conjoin these together to form your JSON policy? The policies are kept separate so that users are aware of what each policy is needed for. Is this sufficient?

No, for a few reasons. First off, the policies still have CFN parameters in them like ${AWS::Region}, so I cannot use these directly. Second, I cannot easily download them.
The goal is to be able to automatically update the policy when upgrading to a later version of Karpenter that needs some policy change. In general, for practically every other component I am familiar with, non-breaking upgrades can be handled completely automatically by using tools like Renovate in conjunction with other tools like Helm and Terraform. Even with this preview documentation, future upgrades of Karpetner are going to require manual intervention to read the documentation, parse the policy changes, and manually apply the changes to whatever tool configuration someone is using.
It is great that the policies are so well documented and explained. In this regard, Karpenter is ahead of most other projects. But as a separate matter, long-term maintenance of installations is just much harder if the policies are not available in formats suitable for automation to apply and update.

I aded some commentary in #5309 but relaying what I mentioned over there in this issue

There's a trade-off here for us of having to maintain and keep two different types of documents consistent here. Are you able to convert from the current Getting Started CloudFormation guide to the JSON document that you need? There was a similar discussion here on this topic https://github.com/aws/karpenter-provider-aws/issues/2649, so if this issue boils down to needing a JSON representation of the IAM policy, I'd point you to the other issue to add additional input.
We're definitely not strictly opposed to it. I'd like us to support better ways to automate this for users but the problem right now is that we don't have automation that allows us to maintain both the JSON policy and the CloudFormation documents that we need. If we had that in place and had a single source-of-truth for maintaining the JSON document, then I'd be all on-board.
We'd happily accept a contribution that supported some way to achieve this; most of the maintainers don't currently have the bandwidth to support this right now.

Continuing a conversation started in #5407 and #5309,

If anything, the CloudFormation file should REFERENCE that file to get the canonical policy value, keeping the single source of truth

Agree, as mentioned in https://github.com/aws/karpenter-provider-aws/issues/2649, we'd definitely accept a change to our docs that pointed us in that direction, so long as we can make sure to have a single place where the policy is listed 👍🏼

I'm not a CloudFormation user (see earlier posts) but from a quick read of the docs it looks like the only thing we can do to get the CloudFormation to reference a file is the Fn::Transform using an AWS::Include and that the AWS::Include "location:" syntax only supports an S3 URI (it explicitly says GitHub repo is not supported - boo!!).
Does the project have an AWS S3 bucket associated with it that we could post the latest canonical policy file in to make it the single source of truth for the JSON policy?   Or a way to get CloudFormation to include from a regular URL? Of the various automations - Terraform, CDK, etc - it looks like CloudFormation is the most restrictive in its include syntax to reference the IAM policy.  It seems a strange choice for the example deployment.

Plus one on this.
It's really hard to understand why still aren't in pure JSON policies. Since 2022.
It's far easier for someone well-versed in Cloud Formation to automate the translation from JSON to CFN than someone who never saw CFN to translate that to JSON.
Trying to automate the extraction of the JSON part of the CFN is also way more complicated than inserting the same JSON into it.
If available hands is the problem and the below policy is (somewhat) correct, I can send a PR to send this file somewhere to address this...
## VARIABLES:
AWS_REGION=
CLUSTER_NAME=
AWS_PARTITION=
AWS_ACCOUNT_ID=
KARPENTER_NODE_ROLE_ARN=
KARPENTER_INTERRUPTION_QUEUE_ARN=

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowScopedEC2InstanceAccessActions",
      "Effect": "Allow",
      "Resource": [
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}::image/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}::snapshot/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:security-group/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:subnet/*"
      ],
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateFleet"
      ]
    },
    {
      "Sid": "AllowScopedEC2LaunchTemplateAccessActions",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:launch-template/*",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateFleet"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned"
        },
        "StringLike": {
          "aws:ResourceTag/karpenter.sh/nodepool": "*"
        }
      }
    },
    {
      "Sid": "AllowScopedEC2InstanceActionsWithTags",
      "Effect": "Allow",
      "Resource": [
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:fleet/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:instance/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:volume/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:network-interface/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:launch-template/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:spot-instances-request/*"
      ],
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateFleet",
        "ec2:CreateLaunchTemplate"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned",
          "aws:RequestTag/eks:eks-cluster-name": "${CLUSTER_NAME}"
        },
        "StringLike": {
          "aws:RequestTag/karpenter.sh/nodepool": "*"
        }
      }
    },
    {
      "Sid": "AllowScopedResourceCreationTagging",
      "Effect": "Allow",
      "Resource": [
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:fleet/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:instance/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:volume/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:network-interface/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:launch-template/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:spot-instances-request/*"
      ],
      "Action": "ec2:CreateTags",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned",
          "aws:RequestTag/eks:eks-cluster-name": "${CLUSTER_NAME}",
          "ec2:CreateAction": [
            "RunInstances",
            "CreateFleet",
            "CreateLaunchTemplate"
          ]
        },
        "StringLike": {
          "aws:RequestTag/karpenter.sh/nodepool": "*"
        }
      }
    },
    {
      "Sid": "AllowScopedResourceTagging",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:instance/*",
      "Action": "ec2:CreateTags",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned"
        },
        "StringLike": {
          "aws:ResourceTag/karpenter.sh/nodepool": "*"
        },
        "StringEqualsIfExists": {
          "aws:RequestTag/eks:eks-cluster-name": "${CLUSTER_NAME}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "eks:eks-cluster-name",
            "karpenter.sh/nodeclaim",
            "Name"
          ]
        }
      }
    },
    {
      "Sid": "AllowScopedDeletion",
      "Effect": "Allow",
      "Resource": [
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:instance/*",
        "arn:${AWS_PARTITION}:ec2:${AWS_REGION}:*:launch-template/*"
      ],
      "Action": [
        "ec2:TerminateInstances",
        "ec2:DeleteLaunchTemplate"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned"
        },
        "StringLike": {
          "aws:ResourceTag/karpenter.sh/nodepool": "*"
        }
      }
    },
    {
      "Sid": "AllowRegionalReadActions",
      "Effect": "Allow",
      "Resource": "*",
      "Action": [
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypeOfferings",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeLaunchTemplates",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSpotPriceHistory",
        "ec2:DescribeSubnets"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "${AWS_REGION}"
        }
      }
    },
    {
      "Sid": "AllowSSMReadActions",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:ssm:${AWS_REGION}::parameter/aws/service/*",
      "Action": "ssm:GetParameter"
    },
    {
      "Sid": "AllowPricingReadActions",
      "Effect": "Allow",
      "Resource": "*",
      "Action": "pricing:GetProducts"
    },
    {
      "Sid": "AllowInterruptionQueueActions",
      "Effect": "Allow",
      "Resource": "${KARPENTER_INTERRUPTION_QUEUE_ARN}",
      "Action": [
        "sqs:DeleteMessage",
        "sqs:GetQueueUrl",
        "sqs:ReceiveMessage"
      ]
    },
    {
      "Sid": "AllowPassingInstanceRole",
      "Effect": "Allow",
      "Resource": "${KARPENTER_NODE_ROLE_ARN}",
      "Action": "iam:PassRole",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "ec2.amazonaws.com"
        }
      }
    },
    {
      "Sid": "AllowScopedInstanceProfileCreationActions",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:iam::${AWS_ACCOUNT_ID}:instance-profile/*",
      "Action": [
        "iam:CreateInstanceProfile"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned",
          "aws:RequestTag/eks:eks-cluster-name": "${CLUSTER_NAME}",
          "aws:RequestTag/topology.kubernetes.io/region": "${AWS_REGION}"
        },
        "StringLike": {
          "aws:RequestTag/karpenter.k8s.aws/ec2nodeclass": "*"
        }
      }
    },
    {
      "Sid": "AllowScopedInstanceProfileTagActions",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:iam::${AWS_ACCOUNT_ID}:instance-profile/*",
      "Action": [
        "iam:TagInstanceProfile"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned",
          "aws:ResourceTag/topology.kubernetes.io/region": "${AWS_REGION}",
          "aws:RequestTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned",
          "aws:RequestTag/eks:eks-cluster-name": "${CLUSTER_NAME}",
          "aws:RequestTag/topology.kubernetes.io/region": "${AWS_REGION}"
        },
        "StringLike": {
          "aws:ResourceTag/karpenter.k8s.aws/ec2nodeclass": "*",
          "aws:RequestTag/karpenter.k8s.aws/ec2nodeclass": "*"
        }
      }
    },
    {
      "Sid": "AllowScopedInstanceProfileActions",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:iam::${AWS_ACCOUNT_ID}:instance-profile/*",
      "Action": [
        "iam:AddRoleToInstanceProfile",
        "iam:RemoveRoleFromInstanceProfile",
        "iam:DeleteInstanceProfile"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/kubernetes.io/cluster/${CLUSTER_NAME}": "owned",
          "aws:ResourceTag/topology.kubernetes.io/region": "${AWS_REGION}"
        },
        "StringLike": {
          "aws:ResourceTag/karpenter.k8s.aws/ec2nodeclass": "*"
        }
      }
    },
    {
      "Sid": "AllowInstanceProfileReadActions",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:iam::${AWS_ACCOUNT_ID}:instance-profile/*",
      "Action": "iam:GetInstanceProfile"
    },
    {
      "Sid": "AllowAPIServerEndpointDiscovery",
      "Effect": "Allow",
      "Resource": "arn:${AWS_PARTITION}:eks:${AWS_REGION}:${AWS_ACCOUNT_ID}:cluster/${CLUSTER_NAME}",
      "Action": "eks:DescribeCluster"
    }
  ]
}

IAM policies should be treated as a versioned artifact since the permissions are tied directly to the underlying implementation. I also want to clarify that this is not just an issue specific Karpenter, but for all projects (controllers) that interact with AWS APIs.
If I hypothetically (crudely) re-create something like Karpenter - as the project grows and evolves, adding new functionality, the associated IAM permissions evolve along with the underlying implementation. As Karpenter has evolved, from adding spot interruption native support to creating IAM instance profiles on behalf of users - these are implementation details that are tied directly to a set of required IAM permissions. However, these details are not readily known through the common version update mechanisms - users are required to navigate back to the core project and specifically the Getting Started.. section (provided you know to look there) to find an example IAM policy. I believe the ask in this issue is to elevate this getting started details to a first class versioned artifact that is directly consumable via an API. The simplest and easiest way to satisfy this would be to simply create a JSON file of the policy in the *AWS provider repo that can be consumed via a standard HTTP request. Doing this will now mean that as new git tags are created on the AWS provider repository, users have a the normal means to reference the artifact within the repository using either the git tag or git sha. Now when users upgrade from something like v0.1.0 to v0.2.0 - the IAM permissions used by Karpenter controller v0.2.0 match what has been tested and validated by the project itself.
There are caveats and footguns with this approach - namely the use of variables to tailor the policy to a users account, region, cluster, etc. I don't have a good solution for this - its possible to do templating but this could face challenges if the variables used in the upstream policy are changed, as well as how to discover or learn about new variables that have been added. I started exploring this concept with the PoC projects below but abandoned due to this brittleness around finding a way to create a variable "contract" of sorts.
https://github.com/clowdhaus/example-external-policies-consumer - consumes the externally provided policy
https://github.com/clowdhaus/example-external-policies - example of a "project" that provides its respective policy that is versioned alongside the software that requires the permissions
I am providing this information to highlight the fact that the request while valid, there aren't any known viable solutions at this time. However, perhaps the capacity of the community at large might come up with alternatives that are viable that could be considered!

@bryantbiggs I think a reference JSON policy should be provided even if there is no standard way to template as the diff between versions, as it would still at least significantly reduce the cognitive load to process changes between versions. This could easily be augmented to support templating by representing the template variables (e.g. partition, account, region, cluster name, etc) by know values in a similar way to how date formats in Go work.

[Edit 1] CloudFormation is not a suitable medium because that is specific to one tool/framework. The policy should be tooling/framework agnostic so that it can be consumed by all regardless of what they use

Having a single CloudFormation file, as is used by Karpenter, makes it harder to detect IAM changes due to the additional noise from unrelated changes.


feat(discovery): add method to list resources based on kind

This PR does the following changes

Adds functionality to discover the list of resources based
on their kind. This functionality will help consumers to get
resource details if they are aware of Resource Kind.
Updates the way of configuring GitHub WorkFlow
Path and Envs(For more info click here).

Signed-off-by: mittachaitu<EMAIL_ADDRESS>

:tada: This PR is included in version 0.5.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Purge Old Events not deleting Records from Event Table

Running DNN 8.0.4 and Events 6.3.0
I'm seeing records that are a year old in the Events Table even though I have "Delete Events Older Than:" set 30 Days.
The Scheduled Task "DNN Events" is running successfully every hour.
The Events are all Recurring, setup as Weekly Events with a Repetition Frequency of 1 Week on a particular Day of the week.
Are the old records supposed to be deleted by the Scheduled Task?
Can I Delete the old records manually from the Events Table without causing problems?

Cleanup events only takes place for individual events, not for events that are part of a master recurring event. The events of a recurring event remain for as long as the master recurring event is taking place.
Suggestion: create multiple adjacent recurring events with a limited timescale i.s.o. one recurring event that spans your whole period.

Ahhhh, I understand now.  I might suggest that you add the first two sentences of your reply to the Purge Old Events page in the Wiki.
As always, thanks for maintaining and supporting this important DNN Module.

@djamell Wik editi: done.


Model's train probelm

Hi,thanks for your code first!
When i use your code to train the model, it has such problem:
INFO:tensorflow:loss = 22.3134, step = 1001 (261.995 sec)
INFO:tensorflow:learning_rate = 0.00678757, cross_entropy = 0.566667, train_px_accuracy = 0.808527, train_mean_iou = 0.377599 (19.899 sec)
INFO:tensorflow:learning_rate = 0.00678546, cross_entropy = 0.470845, train_px_accuracy = 0.808899, train_mean_iou = 0.377893 (20.446 sec)
INFO:tensorflow:learning_rate = 0.00678336, cross_entropy = 0.460198, train_px_accuracy = 0.80944, train_mean_iou = 0.378183 (21.395 sec)
INFO:tensorflow:learning_rate = 0.00678125, cross_entropy = 0.523338, train_px_accuracy = 0.809706, train_mean_iou = 0.381264 (23.844 sec)
INFO:tensorflow:learning_rate = 0.00677914, cross_entropy = 0.385086, train_px_accuracy = 0.810394, train_mean_iou = 0.383153 (25.451 sec)
2018-04-09 04:01:23.318012: W tensorflow/core/framework/op_kernel.cc:1192] Out of range: End of sequence
 [[Node: IteratorGetNext = IteratorGetNext[output_shapes=[[?,513,513,3], [?,513,513,1]], output_types=[DT_FLOAT, DT_INT32], _device="/job:localhost/replica:0/task:0/device:CPU:0"](OneShotIterator)]]

when finish a epoch during (after step=1001),the logs will report "Out of range: End of sequence", and is not go further training, can you give me some advice?
thanks!

Hi @xxktju , thanks for your interest in the repo.
Hmm. I'm not sure. Can you tell me the exact command you typed for the error, as well as your TensrFlow version?
Then, I might be able to investigate further for the error.


Is rotation fail?

Look at this script. Expected, that this script will rotate entity around Y axis on 45 degrees. But it doesn't happen.
when i start game with my entity with added script on scene, i see my entity rotated by 45 degrees and standed. In debug i see that quaternion changes, but i don't see it on scene. Why?

this will rotate the entity by 45° every frame... also make sure that Entity.Transform.UseTRS = true and no other script is writing to the rotation property and that you run the game executable. Scripts don't run in Game Studio.

Entity.Transform.UseTRS == true
no other script is writing to the rotation property
Also, quaternion properties change after multiply. But it doesn't affect to view

Did you attach the rotation script to the correct entity? For instance if the model is on the parent entity and you rotated a child entity you'd end up not rotating the parent

Did you attach the rotation script to the correct entity? For instance if the model is on the parent entity and you rotated a child entity you'd end up not rotating the parent

script is attached to correct entity. Model is child of rotated entity. And first iteration of rotation is happened. When scene loaded, i see that entity rotated to 45 degrees (without script 0 degrees) and freeze.

Your code does work, it rotates the entity 45° every frame. Maybe it's happening too fast that you didn't notice it? if you want it to rotate 45° per second you'll need to multiply with the deltaTime, so your code would be:

this should be closed (i tested it and it works)

Your code does work, it rotates the entity 45° every frame. Maybe it's happening too fast that you didn't notice it? if you want it to rotate 45° per second you'll need to multiply with the deltaTime, so your code would be:

this should be closed (i tested it and it works)

Yeah, I see changes of Entity.Transform.Rotation object every frame in debug, but don't see it by visual (in game window). I thank, that changes so fast, thats why I can't see it, but I tryed decrease angle to 1 degree, to 0.5 degree, 0.001 degree. It looked same as with 45 degrees. My entity rotated on choosen angle only. I just tryed rotation mathematic in action without time reference.


Add a :skip status to pre_commit hooks

We want to use the same overcommit settings across a number of projects. We are using https://github.com/EnvironmentAgency/before_commit to copy a common set of configuration files into a project, and run the initial setup.
Most of the projects are rails apps, but a few are standalone gems. We want to include brakeman when the project is a rails app, but skip the brakeman tests when the project is a gem.
At the moment, the pre_commit hook below works for us:
module Overcommit::Hook::PreCommit
  class Brakeman < Base
    def run
      return :pass unless File.exist?('bin/rails')
      result = execute(command + [applicable_files.join(',')])
      return :pass if result.success?

      [:fail, result.stdout]
    end
  end
end

However, the resulting output for gem projects suggests that brakeman tests have been run. It would be good if we could do this:
module Overcommit::Hook::PreCommit
  class Brakeman < Base
    def run
      return :skip unless File.exist?('bin/rails')
      result = execute(command + [applicable_files.join(',')])
      return :pass if result.success?

      [:fail, result.stdout]
    end
  end
end

I think modifying Overcommit::Printer#print_results method as shown below would achieve the desired effect, but I'm not sure if there would be any other knock on effects.
    def print_result(hook, status, output)
      case status
      when :pass
        log.success 'OK' unless hook.quiet?
      when :skip
        log.warning 'SKIPPED'
      when :warn
        log.warning 'WARNING'
        print_report(output, :bold_warning)
      when :fail
        log.error 'FAILED'
        print_report(output, :bold_error)
      when :interrupt
        log.error 'INTERRUPTED'
        print_report(output, :bold_error)
      else
        log.error '???'
        print_report("Hook returned unknown status `#{status.inspect}` -- ignoring.",
                     :bold_error)
      end
    end

Is this the best way to add a :skip option to pre_commit hooks, or are there other factors that need to be considered?

I see where you're going here, but your use of :skip in this context goes against the spirit of its purpose in Overcommit.
Skipping a hook is intended to be a temporary thing. In your use case, it makes more sense to completely disable the hook, rather than have the hook detect when it should be run.
Your before_commit gem should be able to handle this easily. It can edit the .overcommit.yml file to enable the Brakeman hook for Rails projects. This is better because it saves you from having to load and run the hook code at all, and allows you to simplify your hook code to not have to check if it should be run.
For now, if you just want to remove the distracting output, you can add quiet: true to the hook's configuration so it will print output only if the hook warns/fails.
To summarize:

The :skip status goes against the purpose of skipped hooks in that it should be an intentional decision by the developer when they are about to commit
You can change before_commit to enable the Brakeman gem only for Rails projects in your .overcommit.yml
quiet: true will silence hook output unless it failed

Hope that helps!

OK. Personally, I think being too prescriptive about how a gem is used is a mistake, but I respect your right to make that decision. We can always use our own fork to add that functionality, though we'll probably just live with the :pass functionality.

I think being too prescriptive about how a gem is used is a mistake

Any software library is just another tool–I wouldn't give you a hammer and stay quiet when you decide to hit the nail with the wrong end.
The approaches I suggested are quite reasonable, and actually fit in with how the tool is supposed to be used. You shouldn't be running hooks which decide whether they should skip–they should be disabled from the get-go if a repository doesn't require the hook. Ignoring this results in slower hook runs since you have to load extra code which ultimately doesn't get executed. Disabling the hooks you don't use prevents this.
Hope that clarifies the reasoning here.

@sds For what it's worth, I also hit on this same issue.  I want to have a common .overcommit.yml that I can copy to all of my Ruby projects.  The brakeman integration is the only one that only plays nicely with Rails but not with Rubygems.
I think considering the Brakeman check passed if a Rails project is not found is completely reasonable as that plugin is only valid if run within a Rails project.
Now that I'm thinking about it, I think the source of the issue is with brakeman itself.  It shouldn't be erroring out if a Rails project is not found.
As a compromise, if I can't get them to return a 0 status code (which may be a tall order considering it probably needs to stay an error status for backwards compatibility), would you be willing to consider the hook passable if I could get a status code returned that only meant "There is nothing to do".  So it would basically be like any other linter and technically what brakeman should be doing if it's run outside of a Rails project.

@sds, the brakeman maintainer was kind enough to add 4 as the exit code for "No Rails app detected", which you all should be able to catch fairly easily and prevent the Brakeman hook from throwing an error.

It should be safe to add to overcommit now since that error code is not currently used, checking for it will simply cause the current behavior of blowing up, however is the user is on the new brakeman version where that error code it used, it will be caught and not blow up.

We actually go a step beyond @thegranddesign and we have a single .overcommit.yml file that's symlinked into each repo. This helps us keep universal code styles (and allows those styles to change and evolve as our team decides) across many different repos.
I came upon this thread after finding https://github.com/presidentbeef/brakeman/issues/869, when one of our non-Rails repos was giving this error after enabling Brakeman.
@sds I'm curious to hear your thoughts on how we might keep the convenience and consistency of our current setup while adding Brakeman support to all of our Rails repos.

@JacobEvelyn We'd love to add support to Overcommit allowing you to specify gems as hook plugins (specified via your project's Gemfile, so even Git repos would be possible). This would allow you to easy bundle update <plugin gem list> to update your configuration for each respective repository. Understandably this could get annoying if you were making frequent changes to your global Overcommit configuration (which my anecdotal experience tells me is not likely).
The main reason we don't want to provide first-class support for loading your hooks from an external (read: not tracked by the Git repo) location is because this goes against the core spirit and value proposition of the tool. Overcommit provides a way for you to enforce a policy that all developers of the given repository must follow.
If you sidestep this you're allowing developers to define one-off workarounds or hacks that are not representative of your organizational policies. You can choose to enforce them only in CI, but there is value in getting early feedback at commit time. We've been open to accepting pull requests adding basic support for this in https://github.com/brigade/overcommit/issues/435#issuecomment-252118374, but would prefer that this be done in a way such that an organization must opt-in to it explicitly.
In your case, your workaround is endorsed by the organization by virtue of you adding .overcommit.yml to your .gitignore file.

Anyway, I got sidetracked a bit, but I wanted to call out your clever use of symlinking as perhaps antithetical to the tool's design. Happy to accept a pull request that adds special handling for exit status 4 to the Brakeman hook, which I think solves your particular use case.


Some plugins have more than one default

https://hub.meltano.com/extractors/tap-shopify

Duplicate of https://github.com/meltano/hub/issues/898

@edgarrmondragon I updated the title of the other one to be more clear. 😄


'Enable' is not detected

Platform
Which platform does the bug apply to?

WebExtension (Google Chrome)

Describe the bug
The accessibility plugin 'Enable' is not detected on https://www.checkid.co.il/
To Reproduce
Steps to reproduce the behavior:

Go to https://www.checkid.co.il/
Check results

Expected behavior
Should detect it
Additional context
I am using the latest commit as of now https://github.com/AliasIO/wappalyzer/commit/6b295b7cd92a2e76d546d045c291d14310b34a3c

Hey @John4266 , fixed, thanks!!!
It was previously mistakenly added as a WordPress plugin. That's why it didn't work for your example.


Problem with safari fallback

The fallback behaviour in safari doesn't work for copying text from the 'fake' textarea element when providing a DOM element as the trigger (as opposed to using a selector).
Open this fiddle in safari to see the issue: https://jsfiddle.net/Ltas2obg/
This seems to be because the textarea gets removed during the same click event as the one which tries to perform the copy, because the listener for removing the 'fake' gets added to the body, and the click event is able to propagate up to the body after the click on the element has been handled.
This isn't an issue when using a selector, because it listens to click events on the body itself, and so the newly added listener to remove the fake will not be called during the same click event.

Perhaps could add e.stopPropagation() within the Clipboard.js click handler?

Looks like a job for setTimeout(fn, 0)!

Is there a simple workaround for this?

This one has wrecked me for the past hour. I should have checked here sooner.
In my case, I'm using this inside an Angular component which will exist multiple times on the page so I can't count on a single ID always. It's handy to just pass exactly the element I want to listen to but then I run into this problem.
Will report back any solutions I find. :)

As @chrisminett alluded to, you can stop the propagation of the click event so that it doesn't reach up to the body element where the listener is attached for removing the fake textarea.
Since you have a reference to the exact DOM element in question, at the point that you register it with Clipboard.js, you can then also attach a click listener to the same DOM element which simply stops the propagation.
This fiddle demonstrates the workaround: https://jsfiddle.net/Ltas2obg/2/
This may have some side effects if you have other click handling listeners higher up the DOM tree, but this has proved safe for me for a temporary workaround.
If that isn't a viable option, however, you could always provide a function as the target config to Clipboard.js which would return a hidden textarea for you to then clean up manually - effectively re-implementing the 'fake' text area which Clipboard.js creates by default.

@Pudge601 Yeah I got it to work by stopping the propagation which is definitely One Weird Trick™  but it will work for us, I think. It's not listened for anywhere above our element. Thanks all for the tips!

Thanks for reporting and sharing your solutions, if you have any suggestion please feel free to send a pull request.


Robot Stuck at Charging Station

Thanks for your work, I tried to implement your simple case(better xml) . But when robot goes to charging station whatever(setbatterylelvel, chargebattery service) I do, Batterylevelabove condition does not change.
Does it relate with deadlock? Did u ever face with this kind of bug? Any help appriciated.

Bug is about; halt/abort goto actions are not getting killed. When goto charging action activated, system gets stuck because of two alive/running goto action.