How do you use moya for HTTPS

The project is a self-built certificate. How can I verify HTTPS for the moya setup?

Hey @xavierXing. You would have to use your own manager in MoyaProvider for that one. You would then configure your certificate handling in it. You can see how we use it in our defaultAlamofireManager:
public final class func defaultAlamofireManager() -> Manager {
    let configuration = URLSessionConfiguration.default
    configuration.httpAdditionalHeaders = Manager.defaultHTTPHeaders

    let manager = Manager(configuration: configuration)
    manager.startRequestsImmediately = false
    return manager
}

Of course this one doesn't have certs handling in it. But you can just use the same setup as for self-signed certs in Alamofire.
Let me know if you have any more questions about it :)

@xavierXing Hey, I have a demo project that shows how to used self-signed certificates with Moya. Let me know if you have any questions :wink:

@sunshinejr  @pedrovereza
Thank you very much for your help. I have read the open direct mouth and tried to customize the manager and let the manager be the parameter of Moya, but it is not useful. Is my func wrong? Thank you again for helping me!!
Could you tell me the two person's instant messaging, for example, WeChat or something?

Hey @xavierXing. Please post your code and we will try to help you :)

@sunshinejr  OK this is my code
var baseLink: String = "http://api.news18a.com/"
enum MoyaNewsCar {
case hotSpot,video,live,business,evaluating,shopping,newCar,useCar,calture,travel,technology,market
}
extension MoyaNewsCar: TargetType {
var baseURL: URL {
return URL(string: baseLink)!
}
var path: String {
return "init.php"
}
var method: Moya.Method {
return .get
}
var parameters: [String: Any]? {
switch self {
case .hotSpot:
return [
"m": "ina_app",
"c": "index",
"a": "index_new"
]
case .video:
return [
"m": "ina_app",
"c": "vedio",
"a": "focus"
]
case .live:
return [
"m": "ina_app",
"c": "vedio",
"a": "new_live"
]
case .business:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "industry"
]
case .evaluating:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "evaluation"
]
case .shopping:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "guide"
]
case .newCar:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "newCar"
]
case .useCar:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "useCar"
]
case .calture:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "culture"
]
case .travel:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "travel"
]
case .technology:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "technology"
]
case .market:
return [
"m": "ina_app",
"c": "index",
"a": "storylist",
"storyType": "market"
]
}
}
var parameterEncoding: ParameterEncoding {
return URLEncoding.default
}
var sampleData: Data {
return "{}".data(using: String.Encoding.utf8)!
}
var task: Task {
return .request
}
/// 是否执行Alamofire验证。默认为"false"
var validate: Bool {
return true
}
}
class NewsNetServer: NSObject {
var netWorkDataType: MoyaNewsCar! = .hotSpot
public func moyaGetData(type: MoyaNewsCar, success: @escaping (_ result : NSDictionary) -> (),failed: @escaping (_ error : String) -> ()) -> Void {
MoyaNewsCarProvider.request(type) { (result) in
do {
let response = try result.dematerialize()
let value = try response.mapNSDictionary()
success(value)
} catch {
let errorPrint = error as CustomStringConvertible
let errorMessage = errorPrint.description
failed(errorMessage)
}
}
}
}
//MARK: - Private Method -
extension NewsNetServer {
}
extension Moya.Response {
func mapNSDictionary() throws -> NSDictionary {
let any = try self.mapJSON()
guard let dictionary = any as? NSDictionary else {
throw MoyaError.jsonMapping(self)
}
return dictionary
}
func mapNSArray() throws -> NSArray {
let any = try self.mapJSON()
guard let array = any as? NSArray else {
throw MoyaError.jsonMapping(self)
}
return array
}
}
let MoyaNewsCarProvider = MoyaProvider(endpointClosure: endpointClosure ,plugins: [NetworkLoggerPlugin(verbose: true, responseDataFormatter: JSONResponseDataFormatter)])
let endpointClosure = { (target: MoyaNewsCar) -> Endpoint in
let defaultEndpoint = MoyaProvider.defaultEndpointMapping(for: target)
return defaultEndpoint.adding(newHTTPHeaderFields: ["VersionCode": "201"])
}
private func JSONResponseDataFormatter(_ data: Data) -> Data {
do {
let dataAsJSON = try JSONSerialization.jsonObject(with: data)
let prettyData = try JSONSerialization.data(withJSONObject: dataAsJSON, options: .prettyPrinted)
return prettyData
} catch {
return data
}
}

Hey @xavierXing. From your code I don't see any manager that you are creating and passing to the MoyaProvider. You can checkout the full demo of how would you do it - pedrovereza/SelfSignedMoya.
In short you would need to create a manager:
import Alamofire

class CustomServerTrustPoliceManager : ServerTrustPolicyManager {
    override func serverTrustPolicy(forHost host: String) -> ServerTrustPolicy? {
        return .disableEvaluation
    }
    public init() {
        super.init(policies: [:])
    }
}

let manager = Manager(
    configuration: URLSessionConfiguration.default,
    serverTrustPolicyManager: CustomServerTrustPoliceManager()
)

And then add it to your provider:
let MoyaNewsCarProvider = MoyaProvider<MoyaNewsCar>(endpointClosure: endpointClosure , manager: manager, plugins: [NetworkLoggerPlugin(verbose: true, responseDataFormatter: JSONResponseDataFormatter)])

And don't forget to set Allow Arbitrary Loads = YES in Info.plist.
Please let me know if you have further questions!


Added support for slices.

When trying out deepcopier, I soon found out that slices don't seem to be supported. This PR aims to provide that functionality, though I am far from being a Golang reflection master.
I looked at deepcopier_test.go, but weren't sure if I understand the test code correctly. For example,
TestCopyTocopies from user to userCopy and I had expected the assertions to verify just that. However, the test verifies that user (the source of the operation) had the expected value. So I wrote my own test case.

Merged, thank you :)

@docbobo :+1:  Thanks!


Fix: parse error when no expression follows after 'return', 'break', …

When no expression follows after keyword 'return', 'break', 'continue' and } follows immediately after these keywords, throws an error.
Fix for #669.

Good to me

lgtm

make push


loadMemoryFromFileInline can not initialize memory mem of non ground type

Type of issue: bug report

Impact: no functional change

Development Phase: proposal
Other information
Please tell us about your environment:
- version: 3.5.1
- OS: `Linux IC_EDA 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux`

What is the current behavior?
I am using rocket-chip for my project, and I want to load a data file to a sram in rocket-chip.
I tried to use loadMemoryFromFile/loadMemoryFromFileInline to implement my needs, but during my use of it, I find some bug of it.
First, I found that firrtl parameter for sram replace 'repl-seq-mem' is conflicted with loadMemoryFromFile/loadMemoryFromFileInline, loadMemoryFromFile/loadMemoryFromFileInline can not work when using repl-seq-mem simultaneously.
Second, When I use loadMemoryFromFile to load memory from file, it can work correctly. But when I use loadMemoryFromFileInline to load memory (non ground type), it wil occur error like this:
Caused by: java.lang.RuntimeException: [module TLRAM] Cannot initialize memory mem of non ground type UInt<8>[4]

Is this normal? Or loadMemoryFromFileInline this API has a bug.
Hope someone can answer my question.
thanks！

First, I found that firrtl parameter for sram replace 'repl-seq-mem' is conflicted with loadMemoryFromFile/loadMemoryFromFileInline, loadMemoryFromFile/loadMemoryFromFileInline can not work when using repl-seq-mem simultaneously.

This should ideally not be a quite failure but should throw an error or at least show you a warning. But yeah, right now it unfortunately does not.

Is this normal? Or loadMemoryFromFileInline this API has a bug.

This is a known limitation. Memories of Vec or Bundle get translated in a way that makes it essentially impossible to support loading the content from file right now. We would like to fix that, but no one has had time to so far.

As Kevin explained, if you have a memory that has for example bit masks (for example a 32bit memory width with 8bit masks), the memory is generated as "4 separated memories" and therefore the directive to import a file into that memory doesn't work (since the Verilog readmem command expect it to be a single memory instead of 4 memories).


Include content-length header for S3 GET responses

S3 Java client seem to be expecting content-length header for GET requests. This change is to include it for S3 requests

Codecov Report
Attention: Patch coverage is 83.33333% with 3 lines in your changes missing coverage. Please review.

Project coverage is 18.62%. Comparing base (52ba813) to head (3bdefcc).
Report is 63 commits behind head on master.

Files
Patch %
Lines

...ava/com/github/ambry/frontend/s3/S3GetHandler.java
80.00%
1 Missing and 1 partial :warning:

...om/github/ambry/frontend/AmbrySecurityService.java
66.66%
1 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (52ba813) and HEAD (3bdefcc). Click for more details.
HEAD has 2 uploads less than BASE

Flag
BASE (52ba813)
HEAD (3bdefcc)

3
1

Additional details and impacted files
@@              Coverage Diff              @@
##             master    #2849       +/-   ##
=============================================
- Coverage     64.24%   18.62%   -45.62%
+ Complexity    10398     2921     -7477
=============================================
  Files           840      850       +10
  Lines         71755    72545      +790
  Branches       8611     8728      +117
=============================================
- Hits          46099    13512    -32587
- Misses        23004    57792    +34788
+ Partials       2652     1241     -1411

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


changes in guarding against small negatives, fixes snow profiles

This PR changes the way we guard against having small negative numbers in our moisture tracers.
In case when, for example, q_liq is a very small negative number:
microphysics_function(q_liq) = 0 .
But we also limit for not overshooting the tendency due to too long time step by taking
tendency = min(q_liq/dt, microphysics_function(q_liq).
In that case we would end up with a wrong, small negative tendency. To prevent that I now changed it to
tendency = min(max(0.0, q_liq/dt), microphysics_function(q_liq).
If you actually plot snow profiles, you will notice we have some very small snow values. This PR fixes it.

bors r+


Add possibility to return converted result instead of writing to file.

Not sure if this is possible already but I wonder if it would be possible at all to return the converted result so it can be used immediately and not write it to a file.

Looking through the code I noticed that convert actually returns the compiled result, like I wanted. Would it be possible to just add an option/flag not to write it to a file?

@Chrazy I'm getting ready to release Theo 3.0.0 and I'll make sure this is possible with the new API

Cool! One other thing that popped up on my wish list was the ability to send in actual source (not a path, but content). I haven't had time to look through the changes yet but maybe that's possible now too?


nara not segmented in syllables

See this test

@sten1ee do you manage to debug the code? If you're really stuck tell me

@eroux since my last comment on PR22 yesterday, I've managed to put 1.5 hours into debugging it.
I've also simplified the TC into this one: (which hopefully is still a valid TC?)
        String input = "narāja";
        Reader reader = new StringReader(input);
        SanskritAnalyzer sa = new SanskritAnalyzer("syl", "roman", false, true, "index");
        List<String> expected = Arrays.asList("na", "ra", "ja");
        ...

No result yet.

ok, no problem

@eroux, after 15-20 mins of debugging I realised that in this particular case, if 'r' was considered a CONSONANT (instead of VOWEL in Lenient mode) this particular problem will be gone;
Then I replaced those two lines:
	addToMap((int)'r', CONSONANT, false);
	addToMap((int)'r', VOWEL, true);

with this line:
	addToMap((int)'r', CONSONANT);

No TC started to fail as a result of this change, while the 'Maitreyapraṇidhana' started passing.
I know nothing about Sanskrit and thus - about the SanskritAnalyzer and its companion classes, but I suggest we either apply this fix, or someone add a TC that would pass prior to that fix, and would fail after it (AKA "TDD")

yes, that's what I thought. But let's think of it a bit more and add a test with saṃskṛtam, in this case the r is a vowel (you can see it with the diacritics).
Ideally it should be found when searching either samskritam (most of the time the vowel ṛ will be searched as ri), samskrtam and saṃskṛtam.
I think if you apply your fix it won't be the case anymore. I think one way to improve the situation would be to make a special treatment for the r in lenient mode: when followed by a vowel other than i, it should be considered a consonant, otherwise a vowel.
Then we'll get another problem but I don't think it can be solved: most of the time ri in lenient mode represents ṛ (where r is a vowel), but sometimes it can represents ri where r is a consonant... I'm not sure how to treat that but that can be for another iteration...

If I knew something about Sanskrit, I'd ask:
Pardon me, but how could an 'r' be a VOWEL in Lenient mode and a CONSONANT otherwise?
🤸♀

see my answer above, the current thinking (which I propose we adjust a bit) is that r in lenient mode represents ṛ which is a vowel. It's more of a semi-vowel where there a sort of a i/u that's not voiced a lot at the same time as an r (or just after). So it sounds like /ri/ or /ru/. My example would be rendered samskritam in English phonetics (which is more or less what lenient mode is), it means "Sanskrit".

here's an example of the problem we can't solve in lenient mode: rikta has a consonant r, while ṛksāma has a vowel r. The indexer can easily make the difference because it can access the diacritics. But the difficulty here is on the query side of things: when someone searches for rik in lenient mode, we can't know if we're looking for a consonant r or a vowel ṛ. In that case I think ri should be treated in lenient mode as if it was always ṛ... I think that should work.

@sten1ee any update? If you don't think you can fix it tell me, I'll try to find some time

@eroux: I haven't touched that issue since then, (switched to eXist related
tasks).
Are you suggesting that the map (char -> Consonant|Vowel) should be
differentiated not only by lenient/non-lenient mode, but by
Indexinq/Querying too?
On Fri, 6 Sep 2019, 09:47 Elie Roux<EMAIL_ADDRESS>wrote:

@sten1ee https://github.com/sten1ee any update? If you don't think you
can fix it tell me, I'll try to find some time
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/buda-base/lucene-sa/issues/23?email_source=notifications&email_token=ABNCMM3WQMSZEAAUOIQATMLQIH4H3A5CNFSM4IPBU2B2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6B5KWY#issuecomment-528733531,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABNCMM6KCMAKJOFWJGIVCN3QIH4H3ANCNFSM4IPBU2BQ
.

hmm not really, my suggestion is more that the categorization of r as a vowel or consonant in lenient mode should depend on the letter after it

Ah, I see.
Sorry for having to repeat it.
(Some sort of excuse is: Out of all the things I have lost, I miss my mind the most. ― Mark Twain)
I did not answer your question: If you don't think you can fix it tell me, I'll try to find some time
For the time being I can't fix it; I guess I've become too old to be a proper Java programmer anymore; Or it is Ruby's fault - after I've learned it (to some degree) my mind rigorously objects any attempts to make it comprehend methods having Cyclomatic complexity > certain threshold, (which threshold is more often than not crossed in standard java code).
So yeah, if it's not too much of a burden for you and you find the time - fix it, please Elie.
If not -- I will try to tackle it when it is escalated or something.

ok, no problem!

@sten1ee I think I'm done, can you try? I also did a relatively neat normalization of anusvara and ignored visargas, maybe it will change some other results (for the better theoretically!)

(not that I understand it, but) it looks great, Élie! Thank you.
Only the exact target score on testSearchMaitreyapraṇidhana() are somehow different for me.
I posted a comment to the relevant src change, but for the sake of better documentation, I'll paste it here as well.
For me the exact (target) scores are as follows:
	doc=0 score=1.5970155
	doc=1 score=1.5970155
	doc=2 score=0.39325747
	doc=3 score=0.39325747
	doc=4 score=0.39325747
	doc=5 score=1.7897819
	doc=6 score=1.7897819
	doc=7 score=1.7150962

I'm ready to make a release, are you planning to do further testings or should I make the release now?

Okay, no plans for further tests.
Fire at will
On Mon, Sep 9, 2019 at 2:10 PM Elie Roux<EMAIL_ADDRESS>wrote:

I'm ready to make a release, are you planning to do further testings or
should I make the release now?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/buda-base/lucene-sa/issues/23?email_source=notifications&email_token=ABNCMMZXJGP5SL6KPXGQTDTQIYVMFA5CNFSM4IPBU2B2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6HFICY#issuecomment-529421323,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABNCMM326UCAQFJO4THWTILQIYVMFANCNFSM4IPBU2BQ
.

ok, done, thanks!


Better error output for parse errors

Right now the parse errors are really bad:
Error: Parse_error.Error: undefined
    at Object.compile (/usr/local/lib/node_modules/reasonably-typed/lib/index.js:45:11)
    at fs.readFile (/usr/local/lib/node_modules/reasonably-typed/lib/cli.js:86:40)
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:503:3)

We should make this better. I'm thinking something like the codeframe errors we do now for Modulegen errors.

I'd like to tackle this, please?

Go for it 😁 feel free to PM me on discord if you need any help!


connection_info.secured_message_version should not exist

The negotiated secured message version is established on a per-session basis. This information should not be in a connection context.

This is used to internally transmit data to session info. The GET data functionality should be removed.


Fixed issue with externalized templates

portiacrawl did not load externalized templates from the spec file. This
change loads and adds external templates from the spec directory.

Looks good. Thanks for the fix


virtualScroll sometimes is completely blank / empty

Sometimes the tree is completely empty when virtualScroll is activated. After some debugging i found out that renderedNodesMaxLength in tree-virtual-scroll.model.ts is not an integer but a float. This buggy behaviour did not occur anymore after ceiling  renderedNodesMaxLength. Maybe because of some strange combinations of nodeHeight and treeHeight this value will not be an integer and the test some lines later fails. What was the actual thought behind this check?
Regards

same here,
When scrolling, the content become to empty for a while

The problem still exists(

We had the same issue. We did this trick and it works well (even the node.scrollToView() works perfectly after):
<div class="tree-view-container" *ngIf="items.length > 0"> <!-- the trick is to wrap and hide with ngIf -->
    <tree-root
        [nodes]="items"
        [options]="options"
    >
    ...
   </tree-root>
</div>

We load the data asynchronously and before fetching the API we worked with mocked data. There weren't absolutely no issues. Problems came just after calling the API.
Hopefully, that will help you guys.

Same here.

I was able to reproduce the defect consistently this way:
(for angular version: 13.3.0 and angular-tree-component version: 11.0.4)
Main component:
<input  type="checkbox" id="checkbox1" [checked]="showContainer" (change)="showContainer = !showContainer"/>
<div *ngIf="showContainer">
  <app-tree-container></app-tree-container>
</div>

tree-container.component.html
<input  type="checkbox" id="checkbox2" [checked]="showTreeRoot" (change)="showTreeRoot = !showTreeRoot"/>
<div *ngIf="showTreeRoot">
    <tree-root #tree [nodes]="nodes" [options]="options"></tree-root>
</div>

tree-container.component.ts
nodes: any = [];
options = { useVirtualScroll: true };
setDataToTree() { this.nodes = [ { id: 1, name: 'root1' }]; }

If the setDataToTree() method is called from the constructor or ngOnInit(), everything works correctly.
If the setDataToTree() method is called from ngAfterViewInit(), the defect appears after clicking checkbox1.
If the setDataToTree() method is called from setTimeout(() => { ... }, 100), the defect appears when the page is opened.
Clicking checkbox2 "fixes" the defect in both cases.
In my case the workaround is based on @vinodsantharam's solution:
@ViewChild("tree") tree: TreeComponent;

ngAfterViewInit(): void {
  loadAndSetTreeData();
  setTimeout(() => this.checkIfTreeIsEmptyAndRefresh(), 100);
}

private checkIfTreeIsEmptyAndRefresh(): void {
  const isDataEmpty = this.nodes.length === 0;
  if(isDataEmpty) return;

  const isTreeEmpty = (this.tree.viewportComponent as any).elementRef.nativeElement.querySelector("tree-node") === null;
  if(!isTreeEmpty) return;

  // There should be nodes, but the tree is empty.
  // Hide and show the tree again so that the data appears.
  this.showTreeRoot = false;
  setTimeout(() => { this.showTreeRoot = true; }, 0);
}

Please ignore the way I reproduced the defect from my previous comment.
I forgot to specify the height of the container, and the documentation clearly states that the height is required:

To use this option, one must supply the height of the container, and the height of each node in the tree.

https://circlongroup.github.io/angular-tree-component -> Guides -> Large Trees & Virtual Scroll
I'll leave the previous comment as it is in case someone else makes the same mistake.
However, I have not found a way to avoid the defect in the main application.
For some reason, the viewportHeight variable from the TreeVirtualScroll class is sometimes equal to zero.
So the getViewportNodes method returns an empty array and the tree remains empty.
https://github.com/CirclonGroup/angular-tree-component/blob/master/projects/angular-tree-component/src/lib/models/tree-virtual-scroll.model.ts#L130
I currently use the following workaround:
private checkIfTreeIsEmptyAndRefresh(): void {
  // Check if the viewportHeight variable has an incorrect value.
  if(this.tree?.viewportComponent?.virtualScroll?.viewportHeight === 0)
  {
    // Call the sizeChanged method to force virtualScroll to recapture viewportHeight.
    this.tree.sizeChanged();
  }
}


Use a DLL file (include Openssl) from Python, then show no OPENSSL_Applink

Hi, I write a dll file to encrypt my file, and I use it from python.
However, it break in my dll.
#code in my dll

char * filename
FILE * fp = fopen(filename, "rb");
if (fp == NULL)
{
	return NULL;
}
RSA *rsa = RSA_new();//pass
if (pub)
{
	rsa = PEM_read_RSA_PUBKEY(fp, &rsa, NULL, NULL);//break here
}

I already try to include "applink.c" in my dll or add "applink.c" to my project, but it didn't work.
Have anyone meet this problem before?
BTW, this is my python code
#my python code to call dll
import ctypes

lib = ctypes.cdll.LoadLibrary("encrypt.dll")

p1 = ctypes.c_char_p (b"test1")
p2 = ctypes.c_char_p (b"test2")

lib.restype = ctypes.c_void_p

lib.DoEncrypt(p1, p2)

I import OpenSSL in python, then it work.
Closed issue!


crashes after taming

Hi,
sometimes when I tame a animal (here a pig tamed with wheat if it is important) the games crashes a couple of seconds after the red hearts are visible.
AsyncErr: Lua: Runtime error from mod 'animalia' in callback luaentity_Step(): ...etest-5.8.0-win64\bin..\mods\animalia/api/behaviors.lua:1477: attempt to call method 'memorize' (a nil value)
stack traceback:
...etest-5.8.0-win64\bin..\mods\animalia/api/behaviors.lua:1477: in function 'func'
...4\minetest-5.8.0-win64\bin..\mods\creatura/mob_meta.lua:1233: in function '_execute_utilities'
...4\minetest-5.8.0-win64\bin..\mods\creatura/mob_meta.lua:937: in function <...4\minetest-5.8.0-win64\bin..\mods\creatura/mob_meta.lua:902>
P.S. It is good that taming workes again after it stops working for a while.

I could be mistaken, but I believe taming should result in green particles rather than the red hearts which I believe indicate the animal is ready to breed.
Taming
Breeding


Fix NixOS spelling in README

It's spelled like NixOS on the official site https://nixos.org/

Thank you!


Use variable group for cmdscan rules

Followup from https://github.com/microsoft/go/pull/687

We now have a variable group to hold our scan rules, so we can change it at any time across all branches without touching our code. (Unfortunately, the variable groups in the internal and public projects are isolated. However, since runfo is only looking at the public data, it's not terrible if the internal side gets out of date.)

https://dev.azure.com/dnceng/internal/_library?itemType=VariableGroups&view=VariableGroupView&variableGroupId=162&path=go-cmdscan-rules
https://dnceng.visualstudio.com/public/_library?itemType=VariableGroups&view=VariableGroupView&variableGroupId=163&path=go-cmdscan-rules

These are injected into the job as env vars like this:
GO_CMDSCAN_RULE_ACCESS_DENIED='{"pattern": "(?i)Access is denied", "url": "https://github.com/microsoft/go/issues/241"}'

Cmdscan takes -envprefix GO_CMDSCAN_RULE_ and looks for all env vars with that prefix to parse as rules. This makes it easy to add new rules: just add a new variable group entry. (Don't need to also modify a list that points to each env var.)
I tried to make sure the command won't crash given bad input so we don't break CI by tweaking the variable groups incorrectly. Also, if one rule is bad, the others still get loaded.

/azp run

By the way, if you ever want to make a variable group in the Public dnceng AzDO project, permissions are locked down and it's not something the team takes lightly, because if it affects the build in any way it introduces a reproducibility problem. (And, of course, secrets are a no-go altogether.) My convo in FR Teams: https://teams.microsoft.com/l/message/19:afba3d1545dd45d7b79f34c1821f6055@thread.skype/1660167101453?tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47&groupId=4d73664c-9f2f-450d-82a5-c2f02756606d&parentMessageId=1660167101453&teamName=.NET Core Eng Services Partners&channelName=First Responders&createdTime=1660167101453&allowXTenantAccess=false


Documentations on migrating for tutorials

I was looking through the docs and tutorials. The database migration part is missing
For the tutorials it needs to mention somewhere that you need to create and migrate the db schema using
edgedb migration create and edgedb migration apply
I would be confusing for beginners if they get stuck because of an migration issue.

Here's the page I think you're looking for on migrations in our Getting Started tutorial: https://www.edgedb.com/docs/intro/migrations
The first step covers the initial creation of your schema, creation of the first migration, and the initial migration. The last three steps cover editing your schema, creating a new migration, and applying it.
I'll close this issue for now, but please reopen if this doesn't address your concern.


Improve readability of selection in regex-nav.

I was poking around the code and saw all-select in the navs namespace - reusing it in the implementation of regex-nav makes the code shorter and clarifies what's happening, namely that we're automatically selecting on ALL the matches of re-seq. Feel free to close if you don't like it or don't want to reuse that function.

Declining because all-select is specifically for ALL. That the code is the same is incidental – the two navigators should be developed independently.


Upgrade spectre.console to 0.47.0, modifying the Cake codebase to fix a breaking change this new version includes

This PR fully addresses https://github.com/cake-build/cake/issues/4157, which was preventing spectre.console from being upgraded to 0.47.0. The PR also includes the actual upgrade to spectre.console 0.47.0
The approach taken is very similar to a previous Cake.Frosting issue, which has already been fixed: https://github.com/cake-build/cake/issues/3291
This PR follows the same pattern introduced for the fix, which was located in Cake.Frosting.Internal.DefaultCommand, here: https://github.com/cake-build/cake/blob/c3cd2af8d73b4f270d6abe585c41f049ea92a0d7/src/Cake.Frosting/Internal/Commands/DefaultCommand.cs#L82
Within Cake proper (rather than Cake.Frosting)... Cake.Commands.DefaultCommand.Execute(...) has been modified to explicitly create the CakeArguments from CommandContext.Remaining, adding in the DefaultCommandSettings.Recompile flag, if necessary.
This PR has indirectly resulted in a move towards to using CakeArguments rather than the spectre.console IRemainingArgument, which seems a lot cleaner and self-contained.

Full disclosure: I'm a little uncomfortable submitting a PR with no unit tests, however my reasons for doing it are as follows:

DefaultCommand, both Cake or Cake.Frosting ones, have entirely zero unit tests (rather, they seem to represent the top level container, and as such aren't tested)
https://github.com/cake-build/cake/issues/3291, which this PR was modelled on, didn't see the need to introduce unit tests to cover the IRemainingArguments behaviour
It's not entirely clear whether this is even the right level for unit testing

However, and relevant to both Cake and Cake.Frosting DefaultCommand's, I would consider introducing tests for this argument handling behaviour, if deemed necessary.
[It might be some kind of factory to create the CakeArguments, added into the IServiceCollection, and injected into the DefaultCommand, two versions of factory I guess, one for Cake and one for Cake.Frosting (given both commands have different DefaultCommandSettings classes). But that's just some thinking off the top of my head]

@FrankRay78 your changes have been merged, thanks for your contribution 👍


Avoid double encode

See https://github.com/encode/starlette/pull/1901
I also updated some other files such as gitignore and setup.py, and also fixed some typos around.

thanks @papb for your contribution :smiley:

And thank you @fullonic for the very fast response!! Will you make a new release?

@fullonic Can you make a new release? Thanks


impl From<Box> for Gc where T: ?Sized

It was mentioned in the README that this doesn't work yet, but I didn't see an issue -- it'd be nice to be able to go Vec<T> -> Gc<[T]>, but this seems like a  good first stepping-stone.

I gave the code a look to see how easy or hard this feels; I'm very new to this codebase, but my gut feeling is that this should be possible on nightly:

Add an unsafe fn Context::allocate_layout(Layout) -> NonNull<GcBoxInner<()>>, which still constructs the header but leaves the contents uninitialized; safety conditions include something like "this must be initialized before returning from the enclosing Arena::mutate (or similar)"
Expose this at pub(crate) in the Mutation
Add a From<Box<T>> where T: ?Sized-like method that uses the ptr_metadata feature like so (untested):

impl<'gc, T: Collect + ?Sized + 'gc> Gc<'gc, T> {
    #[inline]
    pub fn from_box(mc: &Mutation<'gc>, boxed: Box<T>) -> Gc<'gc, T> {
        use core::{
            mem::ManuallyDrop,
            ptr::{addr_of_mut, copy_nonoverlapping, metadata, Pointee},
        };

        // Get the layout and metadata of the T.
        let layout = Layout::for_value::<T>(&boxed);
        let meta: <T as Pointee>::Metadata = metadata(&*boxed);

        // Create a Gc<'gc, ManuallyDrop<T>>. This has all sorts of safety obligations attached.
        // In particular, if a GC occurs while the boxed value is still uninitialized, UB will
        // occur during tracing.
        //
        // This really ought to be MaybeUninit instead, but that doesn't work with unsized types.
        let dst: NonNull<GcBoxInner<ManuallyDrop<T>>> = unsafe {
            let ptr: NonNull<GcBoxInner<()>> = mc.allocate_layout(layout);
            NonNull::from_raw_parts(ptr.cast(), meta)
        };

        // Make the Box be ManuallyDrop.
        let src: Box<ManuallyDrop<T>> = unsafe {
            let ptr = Box::into_raw(boxed);
            Box::from_raw(ptr as *mut ManuallyDrop<T>)
        };

        // Copy the value from src to dst, then free src. This won't drop the T, since we casted
        // the Box.
        unsafe {
            copy_nonoverlapping(
                &*src as *const ManuallyDrop<T> as *const u8,
                addr_of_mut!((*dst.as_ptr()).value) as *mut ManuallyDrop<T> as *mut u8,
                layout.size(),
            );
        }
        drop(src);

        // Cast away the ManuallyDrop.
        let ptr: NonNull<GcBoxInner<T>> = NonNull::from_raw_parts(dst.cast(), meta);

        // Return the nicely-wrapped-up pointer.
        Gc {
            ptr,
            _invariant: PhantomData,
        }
    }
}

I haven't looked deeply enough at allocate_layout to know whether unsizing the vtables will be a nightmare or not... The painful but probably sufficient approach, I suppose, would be to store the metadata in the GcBoxInner, along the lines of std::boxed::ThinBox's WithOpaqueHeader type?

I haven't looked deeply enough at allocate_layout to know whether unsizing the vtables will be a nightmare or not

This is basically where the complexity is, and why we haven't provided this feature yet. Right now, we require that every allocated type have a statically known size and we use a (manual) VTable to store this size. We create the VTables in a const context and use 'static pointers to them, which you can see here: https://github.com/kyren/gc-arena/blob/master/src/types.rs#L91-L106
We're trying to avoid at all costs growing the header for every Gc allocated object, so our current idea is to have two different header formats, one for statically sized Gc objects and one for dynamically sized ones that includes the allocated size.


Images for examples

![restaurants_kibana](https://cloud.githubusercontent.com/assets/5269751/14194018/dcebcb2e-f75e-11e5-924a-673731d89743.jpg)

J
Minimum I m
Jjn
N
Nn
An O
n
OK
~Jai
On Sep 3, 2015 6:15 PM, "asawariS"<EMAIL_ADDRESS>wrote:

[image: nginx_json_dashboard]
https://cloud.githubusercontent.com/assets/5269751/9672317/7c5b763e-524e-11e5-949f-b8dad81bce8f.png
[image: nginx_dashboard]
https://cloud.githubusercontent.com/assets/5269751/9672326/8626f33c-524e-11e5-824e-728ce97ce061.png
—
Reply to this email directly or view it on GitHub
https://github.com/elastic/examples/issues/14.

Very beautiful graph, could you please share your steps?
Thank you!

@smallfish01 this issue just collects dashboard images covered in the various example ReadMe in the repo. You can grab the steps for recreating the dashboard from the appropriate folder. Hope that helps.


How do we add border radius to semi circle pie charts?

Hi @AyoCodess
You can add it to the style of your component (or View) inside which you put the <PieChart> component.

Hi @AyoCodess
You can add it to the style of your component (or View) inside which you put the <PieChart> component.

So both bottom corners of the speed omometer looking pie chart ok either side can simply be rounded with a border radius: 10 for example?

@AyoCodess I misunderstood your requirement. Seems like you want the donut edges to be rounded. This is currently not supported by the library.
I will add this feature in the next version of the library by tomorrow.

@AyoCodess I misunderstood your requirement. Seems like you want the donut edges to be rounded. This is currently not supported by the library.
I will add this feature in the next version of the library by tomorrow.

Awesome! Please let me know.
This is a great library by the way.
By chance could you add the ability to add depth/shadow to the donuts too?

any updates @Abhinandan-Kushwaha

Hi @AyoCodess
Try out the newly launched <PieChartPro> component in version 1.4.8
It supports curved edges using the the following properties inside the objects in the data array-

isStartEdgeCurved
isEndEdgeCurved
startEdgeRadius
endEdgeRadius

Great! Is there a dashed pie chart available?
Kind Regards,
Ayo Adesanya
https://www.ayoadesanya.com/
On Mon, 25 Mar 2024 at 22:34, Abhinandan Kushwaha @.***>
wrote:

Hi @AyoCodess https://github.com/AyoCodess
Try out the newly launched  component in version 1.4.8
It supports curved edges using the the following properties inside the
objects in the data array-

isStartEdgeCurved
isEndEdgeCurved
startEdgeRadius
endEdgeRadius

—
Reply to this email directly, view it on GitHub
https://github.com/Abhinandan-Kushwaha/react-native-gifted-charts/issues/554#issuecomment-2018958023,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARF2KVPX2SUTFY7KK6EIGHDY2CJ55AVCNFSM6AAAAABDXW5QGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJYHE2TQMBSGM
.
You are receiving this because you were mentioned.Message ID:
<Abhinandan-Kushwaha/react-native-gifted-charts/issues/554/2018958023@
github.com>


Emojis in folder does not works (0.4.2)

With folder name as "🧸 DUMMY" :

Works once the emoji as been removed from the folder name and the query (now: "DUMMY") :

Btw thank you very much for the great plugin, much appreciated !

Edit (2021-07-24) : Tested it again but with another folder containing this emoji 👷♂ and it worked fine (but it still did not work with 🧸).

This may have improved in 0.4.6 with other emoji fixes - give it a try.

Im having the same problems here, the following query will not show results:
TABLE file.name AS "File" FROM "⚗ KNOWLEDGE"

But the same query in a folder without emojis works fine:
TABLE file.name AS "File" FROM "TEST"

Just updated before doing the test.
Thank you!

I've successfully gotten this to work testing locally on 0.4.12 on both MacOS and Windows - are you sure it isn't something simple like a spacing issue? Alternatively, is it perhaps an emoji plugin with very high priority over-writing the emoji in the query to an image?

I just tested it again in a new-isolated vault with only two folders and two notes, and it works perfectly there.
So as you say, this must be a problem of other plugin interfering with it!
Will try to identify it although seems complex because I have far too many.
Thank you!

With all the rest of plugins disabled and dataview freshly installed in my main vault, this is still failing. It won't even find folders when any of the ancestor folders has an emoji. I will try to think of a way to replicate in the simpler vault.

Well, after backing up the .obsidian folder, deleting it, then overwriting the plugin configurations and enabling them one by one, it works now.
So I think we will never know what was making this not work.
Thanks again.

Haha, I'm guessing it was some kind of emoji toolbar / emoji improvement plugin which had a very high priority. Dataview registers itself to run very early in the "post-processing" cycle but it's possible for someone to be even higher, which would break what Dataview sees.

This appears to work in Dataview at least, and has tests, so going to mark fixed.


Improve variable handling

Description
Make use of the env.sh file to set environment variables
Signed-off-by: Raul Sevilla<EMAIL_ADDRESS>

Results for e2e-benchmarking CI Tests

Workload
Test
Result
Runtime

router-perf-v2
ingress-performance.sh
PASS
00:08:51

etcd-perf
run_etcd_tests_fromgit.sh
PASS
00:02:34

scale-perf
run_scale_fromgit.sh
PASS
00:05:36

network-perf
smoke_test.sh
PASS
00:11:27

kube-burner
run_clusterdensity_test_fromgit.sh
PASS
00:05:37

kube-burner
run_maxnamespaces_test_fromgit.sh
PASS
00:03:32

kube-burner
run_maxservices_test_fromgit.sh
PASS
00:02:48

kube-burner
run_nodedensity_test_fromgit.sh
PASS
00:03:20

kube-burner
run_nodedensity-heavy_test_fromgit.sh
PASS
00:04:01

storage-perf
run_storage_tests_fromgit.sh
PASS
00:03:34

upgrade-perf
run_upgrade_fromgit.sh
PASS
00:00:54


Segment group doesn't work for backgroundColor and styles.

Wei, thanks for your contribution to this project, my new tool relies on it strongly.
After upgrading to the new version 4.0.0, I use the following code to join a colorful message in terminal console, but got something unexpected results:
import RainbowSwift

let entry = Rainbow.Entry(
    segments: [
        .init(text: "Hello ", color: .named(.magenta)),
        .init(text: "Rainbow ", color: .bit8(214), backgroundColor: .named(.black), styles: [.underline]),
        .init(text: "Hello ", color: .named(.magenta)/*, backgroundColor: .named(.default)*/),  // Comment 1
        .init(text: "again", color: .named(.magenta), backgroundColor: .named(.red)/*, styles: [.default]*/),  // Comment 2
    ]
)
print(Rainbow.generateString(for: entry))

It shows the black background and styles from the second segment on the second Hello, this is weird, the underline style also affects to the last segment:

If I uncomment the Comment 1 only:

If I uncoment the Comment 2 only:

Uncomment both:

I really don't know how to explain them even after trying to look into the Rainbow inside, please confirm is it a bug or how should I use the Segment.
Thanks!

A lack of color or style now is not meaning "reset to default", but inherit the one set by the previous segment, until you give it another explicit setting. This is how the ANSI console escape works, but I am now a bit not sure if it is still good for Rainbow.Entry(segments:). From the aspect of OOP, it is a bug and I guess we need to add a reset command on each segment. But it outputs a more complicated result. So here is a trade-off and more careful consideration. I would need some time to think about it.
For a quick around, I believe you can explicitly set backgroundColor: .named(.default) and styles: [.default] to every segment to reset any unnecessary format.

Got it, I'll drop to join the results of applyingColor serial method manually for safe. Thanks for your quick response.


Restrict Provisioning Developer Environment

[Enter feedback here]
Hello team,
Kindly update the document about the Developer Environment type:

_Developer
Developer environments are created by users who have the Community Plan license. They're special environments intended only for use by the owner, and they can't be shared with other users. Provisioning developer environments can't be restricted unless through a support ticket.
Only a single user account with the Community Plan has access._

From:
https://docs.microsoft.com/en-us/power-platform/admin/environments-overview#types-of-environments
And also in this current article:
https://docs.microsoft.com/en-us/powerapps/maker/dev-community-plan#can-i-delete-my-individual-environment
UPDATE:
To restrict provisioning the Developer environment, tenant-level admin needs to block "internal consent plans"

First install the latest version of the module:
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell -Force
Now internal plans can be removed using the command:
Remove-AllowedConsentPlans -Types "Internal"
To allow a particular type of plan, you can use the command:
Add-AllowedConsentPlans -Types "Internal"
Review the currently allowed consent plan types within the tenant:
Get-AllowedConsentPlans

In addition, to block self-service sign up, the tenant admin can turn off the AAD setting "AllowAdHocSubscriptions".
More information about this topic can be found here: https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-self-service-signup.
References:
https://docs.microsoft.com/en-us/power-platform/admin/powerapps-powershell
https://docs.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell/remove-allowedconsentplans?view=pa-ps-latest
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 06ec6689-7baa-94ad-65b2-a7635daf277e
Version Independent ID: f076de06-b509-f686-f334-18891a1a6cda
Content: Power Apps Community Plan -- a free development environment for individual use - Power Apps
Content Source: powerapps-docs/maker/dev-community-plan.md
Service: powerapps
GitHub Login: @dileepsinghmicrosoft
Microsoft Alias: dileeps

@DavidPaf - Thanks for your feedback. The article has been updated to link to the Power Platform admin center article that describes how to restrict the creation of developer environments.
Closing issue.


[Material Slider] Overriding theme's colors

Make sure to check the demo app(s) for sample usage
Make sure to check the existing issues in this repository
If the demo apps cannot help and there is no issue for your problem, tell us about it
Please, ensure your title is less than 63 characters long and starts with a capital
letter.
Which platform(s) does your issue occur on?

Android

Please, provide the following version numbers that your issue occurs with:

CLI: 8.3.2
Cross-platform modules:8.3.4
Runtime(s): Android 8.3.1
Plugin(s):

  "dependencies": {
    "@angular/animations": "~14.2.0",
    "@angular/common": "~14.2.0",
    "@angular/compiler": "~14.2.0",
    "@angular/core": "~14.2.0",
    "@angular/forms": "~14.2.0",
    "@angular/platform-browser": "~14.2.0",
    "@angular/platform-browser-dynamic": "~14.2.0",
    "@angular/router": "~14.2.0",
    "@developerwym/ns-screen-orientacion": "^1.0.2",
    "@nativescript-community/gesturehandler": "^2.0.5",
    "@nativescript-community/ui-canvas": "^4.4.4",
    "@nativescript-community/ui-chart": "^1.2.19",
    "@nativescript-community/ui-lottie": "^5.0.0",
    "@nativescript-community/ui-mapbox": "^6.2.15",
    "@nativescript-community/ui-material-cardview": "^7.0.25",
    "@nativescript-community/ui-material-core": "^7.0.25",
    "@nativescript-community/ui-material-dialogs": "^7.0.25",
    "@nativescript-community/ui-material-slider": "^7.0.25",
    "@nativescript-community/ui-material-snackbar": "^7.0.25",
    "@nativescript-community/ui-material-tabs": "^7.0.25",
    "@nativescript-community/ui-persistent-bottomsheet": "^0.0.21",
    "@nativescript/angular": "^14.2.0",
    "@nativescript/appversion": "^2.0.0",
    "@nativescript/auto-fit-text": "^1.0.3",
    "@nativescript/brightness": "^2.0.0",
    "@nativescript/core": "^8.3.4",
    "@nativescript/firebase-admob": "^1.2.2",
    "@nativescript/firebase-analytics": "^1.2.2",
    "@nativescript/firebase-auth": "^1.2.2",
    "@nativescript/firebase-core": "^1.2.2",
    "@nativescript/firebase-crashlytics": "^1.2.2",
    "@nativescript/firebase-database": "^1.2.2",
    "@nativescript/firebase-in-app-messaging": "^1.2.2",
    "@nativescript/firebase-messaging": "^1.2.2",
    "@nativescript/firebase-performance": "^1.2.2",
    "@nativescript/geolocation": "^8.0.2",
    "@nativescript/google-signin": "^1.0.0",
    "@nativescript/local-notifications": "^6.0.0",
    "@nativescript/payments": "^1.0.4",
    "@nativescript/picker": "^4.0.1",
    "@nativescript/social-share": "^2.1.0",
    "@nativescript/theme": "^3.0.2",
    "@nstudio/nativescript-cardview": "^2.0.1",
    "@nstudio/nativescript-checkbox": "^2.0.5",
    "@nstudio/nativescript-fancyalert": "^4.0.1",
    "@nstudio/nativescript-filterable-listpicker": "^3.0.1",
    "@nstudio/nativescript-label-marquee": "^1.0.1",
    "@nstudio/nativescript-shimmer": "^1.0.7",
    "@sergeymell/nativescript-svg": "^1.1.2",
    "@triniwiz/nativescript-image-cache-it": "^7.1.0",
    "@triniwiz/nativescript-pager": "^14.0.1",
    "@triniwiz/nativescript-tooltip": "^3.0.0",
    "@triniwiz/nativescript-youtubeplayer": "^4.1.4",
    "jwt-decode": "^3.1.2",
    "nativescript-app-tour": "^4.0.0",
    "nativescript-audio": "^6.2.6",
    "nativescript-swipe-layout": "^2.0.1",
    "nativescript-ui-listview": "^9.1.4",
    "nativescript-ui-sidedrawer": "^10.0.1",
    "plugin": "^0.3.3",
    "reflect-metadata": "~0.1.13",
    "rxjs": "~7.5.6",
    "source-map": "^0.7.4",
    "stacktrace-js": "^2.0.2",
    "zone.js": "~0.11.8"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~14.2.1",
    "@angular/cli": "~14.2.1",
    "@angular/compiler-cli": "~14.2.0",
    "@nativescript/android": "~8.3.1",
    "@nativescript/eslint-plugin": "0.0.4",
    "@nativescript/schematics": "^11.2.0",
    "@nativescript/types": "~8.3.1",
    "@nativescript/webpack": "~5.0.8",
    "@ngtools/webpack": "~14.2.1",
    "@typescript-eslint/eslint-plugin": "^5.35.1",
    "@typescript-eslint/parser": "^5.35.1",
    "codelyzer": "~6.0.2",
    "eslint": "^8.23.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-nativescript": "0.0.0",
    "husky": "^8.0.1",
    "lint-staged": "^13.0.3",
    "prettier": "2.7.1",
    "sass": "^1.54.5",
    "typescript": "~4.8.2"
  }

Please, tell us how to recreate the issue in as much detail as possible.
I have recently updated to NS 8.3 and my colors are now being overriden by the theme I'm using (@nativescript/theme/core) instead of picking up the Primary color from my colors.xml file . Trying to change the colors inline as in the code below only changes the thumb's color:
<MDSlider  value="5" class="slider" minValue="0" maxValue="10"
       (valueChange)="onSliderValueChange($event)" verticalAlignment="center" stepSize="1"
       backgroundColor="white" trackFillColor="#77567a" thumbColor="#77567a"
       trackBackgroundColor="#9F88A1"></MDSlider>

@guillemc23 hard to tell. Seems like a css issue. Can you reproduce it in an simple example project? (not angular please).


Aborter missing AbortController

The controller portion of the AbortSignal/AbortController pair is missing. In our library, a user calls abort on the signal itself as opposed to creating a controller and aborting from the controller. This means users will have to write different code if they use standard AbortSignal. It's also potentially bad practice to have abort() on the signal - it means giving a signal to a method gives that method the ability to cancel work which is often not desirable.
@JeffreyRichter I believe you wrote this, I wonder if you considered this difference vs. platform and arrived here deliberately?

Talked to Jeffrey, we're agreed we should implement the proper design. For preview 2 let's try to implement AbortController and move abort() to the controller.
/cc @XiaoningLiu who may have more thoughts

With https://github.com/Azure/azure-sdk-for-js/pull/3625, we have the basic AbortController in the core aborter package
With https://github.com/Azure/azure-sdk-for-js/pull/3654, this package is renamed to @azure/abort-controller
Keeping this issue open to add the below

Support timeout
Respect the parent value
Update README samples

cc @chradek
@bterlson Do you need consensus from any other parties involved or are we good to go with the above?

With #3682 the @azure/abort-controller package now supports timeout, parent values, and has an updated readme. Closing this issue!


Ui: make the whole homepage responsive #146

Ui: make the whole homepage responsive #146
Closes: #146
Before:

After:

@AkshitLakhera hello, I think you have mislabeled here, the issue assigned was level2, please change the label here. Thank you.

@AkshitLakhera reminder sir.

@AkshitLakhera reminder sir.

reminder sir


There's currently an issue when trying to retrieve the email

Same error even when trying to refresh the page

Restarted the DB server, thanks


Update README.md now that alpha releases are available

for the public this is still 'coming soon'

Noted.
In that case, we can still use this issue to update the README to contain information about first-time setup and installation of CodeReady Containers for those who have the required bundle (without explicitly mentioning where to get it).

I'm confused, comment on #173  says "releases aren't actually at the moment done from GitHub.", but I see 2 releases at https://github.com/code-ready/crc/releases
The public will see these if they click Releases, so what's the point? Do you want some help for 'Getting Started' docs?

CRC needs to be released as both a binary and an image bundle, based on the
result of code-ready/snc. The first is available, but not usable without
the bundle. This is what I was referring to.
On Sun, Jun 2, 2019, 16:52 Paul Wright<EMAIL_ADDRESS>wrote:

I'm confused, comment on #173 https://github.com/code-ready/crc/pull/173
says "releases aren't actually at the moment done from GitHub.", but I see
2 releases at https://github.com/code-ready/crc/releases
The public will see these if they click Releases, so what's the point? Do
you want some help for 'Getting Started' docs?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/code-ready/crc/issues/174?email_source=notifications&email_token=AAAAOZWBPOFJ44YQ2M6KSALPYOC6XA5CNFSM4HRFSV2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWXRBJY#issuecomment-498012327,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAAOZQKSGQHKJ652HDWOCLPYOC6XANCNFSM4HRFSV2A
.


SUPPORT - How can i load/register Assets from a native class

Sorry for this issue but there is really no documentation on how to do what i want to achieve.
Basically what i want to do is register named assets in a custom class
use Assetic\AssetManager;
use Assetic\Asset\AssetCollection;
use Assetic\Asset\AssetReference;
use Assetic\Asset\HttpAsset;

class MyClass{
    public function __construct(  AssetManager $am ){
      $am->set('MyClass', new AssetCollection( array(
            new HttpAsset('https://code.jquery.com/jquery-2.2.0.min.js'),
        )));
    }
}

and then reference it in a twig template

 {% javascripts '@MyClass' %}
                <script src="{{ asset_url }}"></script>
            {% endjavascripts %}

This does not work without dumping the assets. How can i make assetic aware of this assets so they get dumped correctly ?

well, if your constructor is not called when dumping assets, this asset will indeed not be known.
What is the use case for defining it in the constructor of the class rather than defining some configuration in the container ?

Well the class was just an example.
My real world scenario would be to use this in form types. A typical scenario would be a datetime picker where u need to include for example jquery-ui or some other ressources in the twig files.
I want to provide my own form types which can be quieried for their assets. Those assets should be collected together from all my form types and then referenced in the twig tmeplate by a name.
Is there a way to write some kind of loader to tell assetic to look in all my form classes and call a specific method for example ?

Well, the issue is still the same: if the form types are not instantiated, the assets are not registered and so @MyFormAssets does not exist.
and yes, Assetic has a FormulaLoader to load asset formulae (which is what the Twig integration does for instance)

In case the form types will be instantiated can i use the above assetic syntax or do i need to dump the assets before ?


get_thumbnail() error

This from your examples is giving me an error:
from sorl.thumbnail import get_thumbnail
im = get_thumbnail(my_file, '100x100', crop='center', quality=99)
this is the error:
Could not import smapp.api. Error was: cannot import name get_thumbnail
I'm doing something wrong?
in the templates sorl.thumbnail is working perfect.

@dparcerisa  I have a same problem :
It cant impor get_thumbnail
although I'm using sorl-sorl-thumbnail-v10.12.1-73-gf446f91 version.


Remove ATB info from metrics

Task/Issue URL: https://app.asana.com/0/488551667048375/1202664362404564/f
Description
Removing ATB info from metrics as retention study is done
Steps to test this PR
NA

Current dependencies on/for this PR:

develop

PR #2106   👈

This comment was auto-generated by Graphite.


Dev v0.2.1

Initializing sets by name, e.g. node sets, side sets, and blocks is now supported.
Fixed up some global variables bugs
Hardened nodal variable I/O
Added in more element variable support to address issue #24
Some updates to README
probably some other stuff got done along the way...

This pull request also addressed issues #4 #12 #16 and #22


[WIP] Add Support for PodBuilder

As discussed in https://github.com/blender/Rome/issues/155, support for PodBuilder would be nice additionally to Carthage.
⚠ Not finished, this is work in progress.

~Parse and analyze the Podfile.restore file to find out which framework versions the project depends on~
~Parse and analyze the PodBuilder.podspec file to find out which frameworks would need to be generated~
~Parse the PodBuilder.plist files and use them instead of Carthage version files~
[x] Parse the pod_builder info json output from a file
[ ] Receive podbuilder info output via STDIN or as a parameter (a temporary file would not be so nice)
[x] Add and parse a configuration option flag which tells Rome that it needs to deal with a PodBuilder project
[ ] (optional) put the configuration option to Romefile
[x] Add and parse a configuration option flag for passing the compiler version, since pod_builder info contains the swift_version for each built Swift framework, and we need to compare it to the expected one, and use it as part of the cache key
[ ] Extract functionality common to Carthage and PodBuilder, and execute different code paths based on configuration option
[ ] Use the PodBuilder folder structure instead of the one of Carthage/Build
[ ] Since CocoaPods/Rome and therefore PodBuilder only seems to support one platform at a time, ignore TargetPlatform, or set it to some placeholder
[ ] Update Readme

@blender I implemented the parser for Podfile.restore 🎉. I would be grateful if you could look over PodfileRestore.hs, and give me directions for these questions:

In the parser, I just parsed lines starting with pod (and that end with # pb<...>), I think this should be ok since PodBuilder builds all frameworks from all targets anyways into a flat list. Sounds reasonable?
In the Podfile.restore, subspec references like AFNetworking/NSURLSession can occur, but PodBuilder will only build a single framework. I have the hunch that I should use the set of subspecs as a part of the framework version, so it cannot happen that the client project adds a subspec for a pod in its Podfile, but does not change the version of the pod, and Rome serves the cached framework, but missing the parts of the added subspec. I need to check with the maintainer of PodBuilder. What do you think?
I have not filtered out duplicates across targets or subspecs, I guess this can be done at a later point when the data from the parsed Podfile.restore and PodBuilder.podspec are combined?
PodBuilder only allows to build for one platform at a time. It might still be interesting to store the frameworks in a folder with the platform in the cache. I could parse the line starting with platform from Podfile.restore, but I was not sure how to parse it properly. Any hints?
Do the data structures PodfileEntry, PodName and PodVersion make sense like this for further processing?

Unfortunately I found out that I also need to parse PodBuilder.podspec in order to find out how the framework folders are named... So later I need to combine the information with the parsed one from Podfile.restore. But one after the other. At least I have a next step ;-)

@blender Thanks! But change of plans: I talked to @tcamin (maintainer of PodBuilder, actually he works in a sister company), and we found out that even when parsing Podfile.restore and PodBuilder.podspec there are still cases where we cannot infer the framework file names without additional information, e.g. when using different subspecs in app extensions (see subspecs_to_split documentation of PodBuilder). As a solution for integrating blender/Rome, @tcamin introduced a new pod_builder info command which will output a nicely formatted json with all the information that we need:
pod_builder info
{
  "AFNetworking": {
    "podbuilder_name": "AFNetworking",
    "framework_path": "Rome/AFNetworking.framework",
    "restore_info": {
      "version": {
        "repo": "https://github.com/willhaben/AFNetworking.git",
        "hash": "c683ebf"
      },
      "specs": [
        "AFNetworking/NSURLSession",
        "AFNetworking/Reachability",
        "AFNetworking/Security",
        "AFNetworking/Serialization",
        "AFNetworking/UIKit"
      ]
    }
  },
  "AGWindowView": {
    "podbuilder_name": "AGWindowView",
    "framework_path": "Rome/AGWindowView.framework",
    "restore_info": {
      "version": {
        "repo": "https://github.com/willhaben/AGWindowView.git",
        "hash": "cef7821"
      },
      "specs": [
        "AGWindowView"
      ]
    },
    "prebuilt_info": {
      "version": {
        "repo": "https://github.com/willhaben/AGWindowView.git",
        "hash": "cef7821"
      },
      "specs": [
        "AGWindowView"
      ]
    }
  },
  "ATInternet-Apple-SDK": {
    "podbuilder_name": "ATInternet-Apple-SDK",
    "framework_path": "Rome/Tracker.framework",
    "restore_info": {
      "version": {
        "tag": "2.9.3"
      },
      "specs": [
        "ATInternet-Apple-SDK/Tracker"
      ]
    },
    "prebuilt_info": {
      "swift_version": "swiftlang-1000.11.42",
      "version": {
        "tag": "2.9.3"
      },
      "specs": [
        "ATInternet-Apple-SDK/Tracker"
      ]
    }
  }
}

So I will parse this output instead of Podfile.restore, PodBuilder.podspec and all the PodBuilder.plist files. (I guess the Aeson Haskell lib will make this easy). The key prebuilt_info contains info about the currently present compiled frameworks (similar to Carthages .version files).
So parsing this should be easy, but getting it into blender/Rome not, since it's not stored in a file. I thought about STDIN, what do you think? I'd like to avoid temporary files.

I think your best option is first going via file then once successful we can think of how to use stdin.

@blender now that was easy, parsing of the json is done. My next steps would be to add a configuration option to the Romefile to make rome know it deals with a PodBuilder project, and depending on this execute different code paths. And extract common functionality to both Carthage and PodBuilder project handling (I'm still very vague about this, need to understand the code better first). If you have any directions, very welcome!

Ok
first of a few questions:

Is there a need for the repositoryMap with PodBuilder?
Is there a need for the ignoreMap ? (I guess, yes)
Is there a need for the currentMap ? (This is for the current framework currently being built)

I would start by adding a CLI option with default value carthage instead of a section in the config file like:
rome  upload --build-type=carthage or rome  upload --build-type=podbuilder
you can then analyzer the CLI flag right in the runRomeWithOptionsmethod and branch there.
The function to upload and download and upload to S3 are pretty generic and agnostic of Carthage (or so I recall).
The main trick is a few HashMap that store:
repository name -> binary name
binary name -> repository name (InvertedRepositoryMap)
I would ignore any networking to start with and just do the local filesystem caching for now.

Is there a need for the repositoryMap with PodBuilder?
Is there a need for the ignoreMap ? (I guess, yes)
Is there a need for the currentMap ? (This is for the current framework currently being built)

I think I need neither. The repositoryMap and the ignoreMap are provided implicitly by pod_builder info since it already provides the output framework names + it does not include frameworks anyways that do not produce a framework (e.g. R.swift).
I'm not sure about the currentMap since I never thought about using PodBuilder for a framework project, I'd leave this out for now, and come back to it if it gets relevant.

I would start by adding a CLI option with default value carthage instead of a section in the config file like:
rome upload --build-type=carthage or rome upload --build-type=podbuilder

Ok done. I also added a compiler-version CLI option, since pod_builder info already provides valuable info about the compiler version of built frameworks, and I can use it as part of the cache key - it's more sophisticated than using the Swift compiler version as a general cache-prefix.

you can then analyzer the CLI flag right in the runRomeWithOptionsmethod and branch there.

Ok, next up :-)

I think you still need the ignoreMap.
All is nice till a framework has a .modulemap for a system library and the binaries are not relocatable.

I also added a compiler-version CLI option

mmm, can you show me the code? I'm not sure what the purpose of this would be since you can populate cache-prefix with for example swift_4_2_1-swiftlang-1000_11_42-clang-1000_11_45_1

Also you might want to pull from my repo. I changed a few things and now the build is much faster.

I think you still need the ignoreMap.
All is nice till a framework has a .modulemap for a system library and the binaries are not relocatable.

Hm good hint, do you have an example so I can try with PodBuilder?

mmm, can you show me the code? I'm not sure what the purpose of this would be since you can populate cache-prefix with for example swift_4_2_1-swiftlang-1000_11_42-clang-1000_11_45_1

Not every framework is a Swift framework, so not all need the common cache prefix. PodBuilder provides the swift_version only for Swift frameworks, see
https://github.com/fabb/Rome/blob/6f1ca1da3aba6b0935e772c3c63487236fdd4b13/PodBuilderInfo.json#L60

For non-relocatable framework exmaple: https://github.com/daltoniam/Starscream

not all need the common cache prefix. PodBuilder provides the swift_version only for Swift frameworks

Sure. So you plan to upload/download each framework from the appropriate location in the Cache based on this information?
I see how this can be valuable to reduce duplication in the cache but I feel like it's a bit of an overkill and also makes the current cache structure incompatible between Carthage/Podbuilder.
It would be better in my opinion not to alter the cache structures. Why? Because in the end it should not matter if the uploader was using Carthage or Podbuilder

Sure. So you plan to upload/download each framework from the appropriate location in the Cache based on this information?

Exactly, I‘d put it into the filename additionally to the version-hash.
Just hypothetically if I used the cache prefix instead, how would I in Rome check if the local frameworks need to be replaced (because we don‘t know which Swift version Would be expected, and which one was given)?

It would be better in my opinion not to alter the cache structures. Why? Because in the end it should not matter if the uploader was using Carthage or Podbuilder

While a good idea in theory, this won‘t work in practice anyways, even when I would ignore the swift_version. Cocoapods supports subspecs, that means a built framework would only include one of several different sets of subspecs. The cached framework should only be used for exactly the same set of expected subspecs. Therefore I‘d also put the subspec names (or a hash of the array of subspec names) into the filename.

Just hypothetically if I used the cache prefix instead, how would I in Rome check if the local frameworks need to be replaced by ones of the cache

Rome doesn't know things need to be replaced. It's the responsibility of the user to enter the right prefix.
It's just a vector (a transport system) to the cache. Rome knows where to get and where to put binaries at, but that's all. It's pretty dumb. I could make it smarter but I don't know if I want to take the freedom away from the user and put the burden on the tool on when and where do things. The more I automate the more error prone the process is.
More specifically:
Carthage produces a Cartfile.resolved. In this file the commit hash or tag of the dependency is saved once it has been resolved at the right version. When the user does rome upload, the Carfile.resolved is read, the frameworks in Carthage/Build/<platform> are uploaded along side with their .bcsymbolmaps and .version files.
They are upload at a path constructed in the following way:
Frameworks and dSYMs: <git-repository-name>/<platform>/<framework-name>.framework(.dSYM)-(static-)<version-hash>.zip
bcsymbolmaps: <git-repository-name>/<platform>/<bcsymbolmap-hash>.bcsymbolmap-(static-)<version-hash>.zip
.version files: <git-repository-name>/.<framework-name>.version-(static-)<version-hash>

When the user runs rome list, the Cartfile.resolved is read, the path are constructed in the same way and  the cache is queried for a hit or a miss.
When the user runs rome download,  the Cartfile.resolved is read, the path are constructed in the same way and binaries downloaded no questions asked.
Alone Rome won't do anything for you. However you can combine command to make it smarted (Functional programming strikes again in the design :D), for example:
rome list --missing --platform iOS | awk '{print $1}' | xargs rome upload --platform iOS
to upload only what is not already in the caches.
In theory I could read the .version files to know if a framework is objective-c, what version of the compiler it was built with and so on... but:

The .version files are part of the cache, so Rome would have to maintains it's own database because on clean checkout of a project the .version files are not there (they are in the cache!)
Carthage doesn't produce .version files by default. It's an CLI option (--cache-builds)

While a good idea in theory, this won‘t work in practice anyways

I'm not sure I understand why. Maybe you can help me? A binary is a binary and to Carthage (at least) all that it matters is that it's placed in the right directory. I imagine Podbuilder also expects binaries to be at a certain location on disk so it's just a matter of placing them there on the user's machine. I'm not sure why where they are in the cache matters.

Exactly, I‘d put it into the filename additionally to the version-hash

That would also break the compatibility of the caches.

Hm, maybe I missed a piece: until now I thought rome download would only download frameworks that were not up to date, but now I rather think it always downloads everything. Does it?

In theory I could read the .version files to know if a framework is objective-c, what version of the compiler it was built with and so on... but:

The .version files are part of the cache, so Rome would have to maintains it's own database because on clean checkout of a project the .version files are not there (they are in the cache!)

Good point, also in the case of PodBuilder I currently do not have the information a priori whether it will be a Swift framework or not. Hm.

I'm not sure I understand why. Maybe you can help me? A binary is a binary and to Carthage (at least) all that it matters is that it's placed in the right directory. I imagine Podbuilder also expects binaries to be at a certain location on disk so it's just a matter of placing them there on the user's machine. I'm not sure why where they are in the cache would matter.

The same framework name could be produced by completely different source code, because of subspecs. For example see https://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking.podspec. When I build AFNetworking just with subspec NSURLSession for one project, I cannot reuse that framework for another project that needs the UIKit subspec.

Exactly, I‘d put it into the filename additionally to the version-hash

That would also break the compatibility of the caches.

I would not change how the filenames were constructed for in Carthage mode of course.

but now I rather think it always downloads everything. Does it?
Yes. In theory I could limit what it download by looking at the .versions files if any. That's actually a good point.

On the first run the user doesn't have any, so download everything. On subsequent runs check what versions files are out of sync with the truth (the Cartfile.resolved).
I never thought of this. Thanks for the inspiration! 😄

The same framework name could be produced by completely different source code, because of subspecs.

so a subspec is a portion of a complete framework built on demand?
Can you know if a binary is "complete" build?

I never thought of this. Thanks for the inspiration! 😄

Molto volentieri! BUT: this won‘t work in the case when using the cache prefix for the Swift version, because you have no way to verify if the local framework stems from the cache with the correct prefix. That‘s why I thought I need to give more information to the dumb vector.

so a subspec is a portion of a complete framework built on demand? If this is the case then I understand why the caches binaries in the cache can't be shared.

Yes, with the exception that there might even be mutually exclusive subspecs. E.g. https://github.com/at-internet/atinternet-apple-sdk/blob/master/ATInternet-Apple-SDK.podspec contains separate subspecs for the main target and the app extension. In this case, PodBuilder even builds two differently postfixed frameworks. See https://github.com/Subito-it/PodBuilder/blob/master/README.md#subspecs_to_split for more information.

this won‘t work in the case when using the cache prefix for the Swift version, because you have no way to verify if the local framework stems from the cache with the correct prefix.

I'm not sure why I would need to verify the Swift version. Rome doesn't know about Swift versions to begin with. The Swift version handling is artificial and manual based on the prefix which is user input.
Nothing presents having cache prefix like swift_4.2 and someone uploading a framework built for 4.0 there. The prefix is just a path appended to the root of the cache. For example ~/Library/Caches/Rome/swift_4.2 or ~/Library/Cache/Rome/mike-test-unstripped where ~/Library/Caches/Rome is the base path to the cache.
What it can do however is check what it needs to download based on cross referencing the hashes in the Cartfile.resolved and in the .version file for each framework in Carthage/Build/<platform>/iOS

you can then analyzer the CLI flag right in the runRomeWithOptions method and branch there.

Instead of branching, I tried to introduce a sum type BuildTypeSpecificConfiguration that allows to share more logic between Carthage and PodBuilder functionality, see the latest commit. Note that currently even though it compiles, and :main download --build-type podbuilder runs, still the file paths are not built correctly, and .version file still should be ignored. Getting there. also there are a lot of TODOs in deriveFrameworkNamesAndVersionPodBuilder.
What do you think of this approach?

this won‘t work in the case when using the cache prefix for the Swift version, because you have no way to verify if the local framework stems from the cache with the correct prefix.

I'm not sure why I would need to verify the Swift version. Rome doesn't know about Swift versions to begin with. The Swift version handling is artificial and manual based on the prefix which is user input.
Nothing presents having a cache prefix like swift_4.2, and someone uploading a framework built for 4.0 there. The prefix is just a path appended to the root of the cache. For example ~/Library/Caches/Rome/swift_4.2 or ~/Library/Cache/Rome/mike-test-unstripped where ~/Library/Caches/Rome is the base path to the cache.
What it can do however is check what it needs to download based on cross referencing the hashes in the Cartfile.resolved and in the .version file for each framework in Carthage/Build/<platform>/iOS

Maybe I'm somehow wrong, but consider this example:
Given the download command is already modified to only download out of sync frameworks, using version files and the Cartfile.resolved.
Scenario 1:

Carthage/Pods contains FrameworkX.framework built with Swift 4
The .version file of FrameworkX matches with what is specified in Cartfile.resolved
The cache contains both swift4/FrameworkX/iOS/FrameworkX.framework-1.0.0.zip and swift3/FrameworkX/iOS/FrameworkX.framework-1.0.0.zip (built with the respectively correct Swift versions)
The currently expected Swift version is 4
The currently set cache key is swift4
=> ✅ download would not fetch FrameworkX.framework, as it's up to date

Scenario 2:

Carthage/Pods contains FrameworkX.framework built with Swift 4
The .version file of FrameworkX matches with what is specified in Cartfile.resolved
The cache contains both swift4/FrameworkX/iOS/FrameworkX.framework-1.0.0.zip and swift3/FrameworkX/iOS/FrameworkX.framework-1.0.0.zip (built with the respectively correct Swift versions)
The currently expected Swift version is 3
The currently set cache key is swift3
=> ❌  download would not fetch FrameworkX.framework, even though the currently present one was built with the wrong Swift version. The reason is that Rome does not know which Swift version and cache prefix the present framework is associated with, as there is no info about this in the .version or Cartfile.resolved files. It does not know enough about the present frameworks to judge if they are out of sync, the .version file is not detailed enough.

I currently can't really think of a way to give Rome this information in a more abstract way than to teach it about the Swift version. Sure, I could give up on the optimization of not downloading everything, but where would the fun be in that? 😄

Oh I see.
Sure scenario 2 won't work, however I don't know how common this is. It seems like an overkill to me to worry about the same commit building for 2 different versions of Swift and people deciding to pull in one from an older version of the compiler. If the user wants to do so I think it should be his responsibility non to run the optimized download/upload.
The current download/upload is not optimized anyways to that would be another CLI option like:
rome (download|upload) --platform iOS Alamofire --if-needed --cache-prefix=my-prefix

What do you think of this approach?
Seems good. Great work! 🎉

Ok, slowly getting there. The generated paths are not yet correct, but now I have the BuildTypeSpecificConfiguration everywhere so I can create different paths for Carthage and PodBuilder. I'm a bit ashamed of putting the additional BuildTypeSpecificConfiguration parameter in so many methods 🙈 If you have any suggestions, keep them coming ;-)

Hm, instead of adding BuildTypeSpecificConfiguration parameters everywhere, I could make FrameworkVersion into a sum type. I still would need to adapt many methods that take Framework Or directly its name instead of FrameworkVersion, like unzipBinary. And it would prevent the ability to destructure the FrameworkVersion directly in the parameters, which would be a bummer. Hm, or maybe make a field of FrameworkVersion into a sum type? I‘ll have to analyze all the usages.

@fabb Sorry for the delay. I will review ASAP.

No problem, I‘m not in a hurry.
The more I think about it, the more I tend to think I should add more record fileds to FrameworkVersion for the local and remote file paths (framework, dsym, bcsymbolmap). What do you think? I‘d try this next.

Or maybe rather introduce a new type FrameworkVector or something like that? FrameworkVersion  seems not the right name/

In d8c3cbfd and cc8d2849 I have implemented the idea for the List command case to try it out. I've wrapped the remoteFrameworkPath function in the FrameworkVector - it could now be set to different functions depending on the BuildTypeSpecificConfiguration, but at the place of call all the way down, we would not need a BuildTypeSpecificConfiguration parameter anymore. I hope my explanation does not confuse more than it helps 😄
Maybe another explanation: the idea is to make the FrameworkVector encapsulate all the build type specific stuff (how paths are generated, what needs to be checked etc.), and make the rest of the code generic and independent of build type logic. A bit like the Strategy Pattern.
I had to jump through some hoops for QuickCheck, since the _remoteFrameworkPath field is a function and therefore the FrameworkVector cannot be equatable, but I hope it's fine how I solved it.
Of course for Download and Upload, it's a lot more work, I would look into that next, and only after that make functions like remoteFrameworkPath build type specific.

BuildTypeSpecificConfiguration seems good to me.
Instead of FrameworkVector what do you think of creating a type class that returns all the information needed so it's independent of the actual implementation?  Maybe this would work for BuildTypeSpecificConfiguration too

Not much Haskell practice here, but from what I have seen it feels like a typeclass would just take more code without benefit. Why not just use functions as record fields line _remoteFrameworkPath? What would be the benefits in your opinion?

I guess the benefit would be the same as adding a protocol if this where Swift? And the data type itself can be made equatable?

Hm, actually I could make the FrameworkVector equatable too, and just ignore method fields (or use default parameter values when comparing). Might be a good idea to make the unit test more concise again.
The „class vs. record“ debate seems to happen more often in the Haskell community, like in this interesting post. I guess it‘s not really comparable to Swift since in Haskell functions are first class citicens and functions are just data.
I‘d stick with a plain data type for now if that‘s ok for you.

Fine with me :)

I'm not yet completely sure if I'm on the right track with the FrameworkVector approach, let's see...
I extracted all the methods for generating paths in up/download code to helper functions (the temp_ functions in Util) and the next step would be to move them to be fields on FrameworkVector. I discovered a lot of places that build the same paths to artifacts, so maybe it's not bad to go over these places and extract the path generating parts.
I see a few bumps with this approach:

I the cache folder structure should be different for different cache implementations, it would be necessary to add even more fields to the FrameworkVector - currently S3 and local caches use the same folder structure though
Since the FrameworkVectors are generated in the beginning, it then would already need to know about all the different cache implementation details, could violate the Open/Closed principle
For things like the .versionswhich are only available for one build type, I'm not yet sure how to integrate this into this approach cleanly. Adding field functions to FrameworkVector which return Maybes could be an option, but still feels weird. Currently I switch on the buildTypeConfig directly on a higher level, and have the lower levels unchanged and only being executed for Carthage, which also could be a good approach, even if not completely consistent with the other approaches.
There is a lot of verbose logging that needs to log out file names and needs to unwrap parts of the FrameworkVector, and has knowledge how paths are built. Having these file name generating functions as fields on the FrameworkVector feels like overkill. Maybe it would be nice to just use the path functions, and cut off the part after the last /, and use that as debug output. I'll try that.

It's fine if you don't review the new changes for now, I still have a lot to do for investigating the FrameworkVector approach.

rebased everything on the latest master, phew, this was quite some work! 😅
i'm already a bit afraid of https://github.com/blender/Rome/pull/148 😆

Ok, moved all the temp_ functions to FrameworkVector, next I can remove all the now unnecessary buildTypeConfig parameters in the rest of the application again, and use different paths for Carthage and PodBuilder.

Since SwiftPM is now integrated into Xcode 11, I will stop developing this PR. Also, the implementation strategy conflicts massively with https://github.com/blender/Rome/pull/148, and a lot of work would need to be put in to resolve this issue, and additionally the issue of supporting both device and simulator builds.
It was a nice fresh up of my Haskell skills though. Thanks @blender for your guidance.

oh damn!


Question: Experience with Hotspot-Service

Hi All,
has someone experience with the install and servrice script which is included in this project?
Does someone use this service?

RPi-Jukebox-RFID/scripts/installscripts/stretch-install-default-HotspotAddOn.sh
RPi-Jukebox-RFID/misc/sampleconfigs/autohotspot.stretch-default2-Hotspot.sample
RPi-Jukebox-RFID/misc/sampleconfigs/autohotspot.service.stretch-default2-Hotspot.sample

I would like to have exacly this features (if home wifi not available, create hotspot to be able to connect the mobile phone and have controll :) )
Thanks for your comments.
Cheers

As I understand those scripts above are halted "work in progress" atm: https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/225#issuecomment-424314891 - but correct me MiczFlor
In the same thread I discussed exactly your feature request the other way round:
So not creating a hotspot on RPi but adding the (mobile)-hotspot of phone (or any other hotspot)  to your raspi-config:
It is already implemented in the code in a simple way to add additional (mobile) hotspots to your RPi config via  RPi-Jukebox-RFID/scripts/userscripts/addhotspot.sh
https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/225#issuecomment-424531924
I even added a way to launch this addhotspot.sh via webinterface if you navigate to to the still "hidden" page: <yourraspi_IP or raspi_hostname>/userScripts.php
(https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/htdocs/userScripts.php)
On that page just select "addhotspot.sh" in dropdown and add the parameters:
without the brackets into the parameter-box and execute.
This should add right lines into the
/etc/wpa_supplicant/wpa_supplicant.conf
/etc/dhcpcd.conf
Which you could check afterwards.
In the manual I also mentioned the fully manual way of doing this including option of another staticIP-wifi (instead of standard DHCP) or priorizing SSIDs and also a to set a hostname instead of using IP, cause this is crucial for multiple wifis:
https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/229/commits/b5301659c93201964548ecdf2157737267d056a1#diff-abf7b7597cd302b334773a55ee96aae5

Please check if adding SSIDs via <yourraspi_IP or raspi_hostname>/userScripts.php works and report back, cause we need some alternative user feedback ;) on this hidden function.

Hi, thank you for this replay and explanation.
I've already configured the SSID for my android hotspot, but than i was not able to control the phoniebox / open the webpage.
And how do you add the Hotel SSID via web-ui? Outside my Homewifi i'm not able to open the web-ui therefor no configuration possibility.

Mobile hotspot: First of all check if your RPi did connect to your mobile hotspot at all. Usually can see this in the hotspot preferences of you mobile phone. If you use IP adress to connect to webui you need to check in your mobilephone which DHCP-adress your RPi got and try that new one -  or try the default hostname http://raspberrypi
That's why using an own host name is useful (see manual.rd)
Hotel-Hotspot / Friends WIFI: yeah you have to connect via mobile hotspot first to add an hotel/friends SSID/password via the webui and after that (perhaps reboot RPi and) disable mobile hotspot  to get the connect to hotel hotspot.
A bit tricky but I guess doable.
But as seen in manual: be aware of controllable/"hackable" phoniebox in open wifis

@toblinga did you add you mobile hotspot via webUI userScript.php ? Would be nice to hear if that worked.

Hi,
I have a rudimentary file in the repo under scripts for a version that is meant to check if no ssid I know in reach, become hotspot. I started working on this, but then never really got it to work.
The main concern on my side: I do not want this to be core code, because it does not work for all raspberry pis. It works for generation 3 and Zero (which I haven't checked).
In my script is the link to the original article. If somebody wants to give it a try, please be my guest.


Readme and issue template update

Description
Updated README and new issue template based on feedback from #79 thanks to @rocboronat.
Submission Checklist

[x] The source has been evaluated for semantic versioning changes and are reflected in gradle.properties
[x] The CHANGELOG.md reflects any feature, bug fixes, or known issues made in the source code

Thank you so much for the clarification about the permissions... and congrats for the resolution speed! 👌


segmentations.csv mask 3 coordinates

Hi,
New to ml. I am using V6 for semantic segmentation. in segmentations.csv, it has mask coordinates under the header clicks. These are set of three coordinates with last coordinate being 0 or 1. Can anyone please explain to me what does this last coordinate stand for?
Thanks

Hi @apoorvcn47,
The masks themselves are in separate PNG files. These clicks are "corrective clicks" which means that are where the annotators clicked to correct the mask either to say that they are indeed foreground (1) or background (0). More details are in the [https://storage.googleapis.com/openimages/web/download.html](Download page) under "Format > Instance segmentation masks"
Best,


[Feature] Menu

Bug, feature request, or proposal:
Feature Request
What is the expected behavior?
Implement Menu as in Angular Material(1)
What is the current behavior?
Currently not implemented in Angular Material 2
I need the Menu feature of Angular Material to be implemented for an application that I am working on.  I would be interested in developing it- but I want to be sure that others are not already working, and if there are other things I need to know in regard to the development roadmap.

https://github.com/angular/material2/issues/119

Similar question of Dialog boxes- have those been written yet?

and similar answer https://github.com/angular/material2/issues/114 you should really try the search function, it's incredible.

#119


Poor performance of SourceDistributionProvider on the cold start

Current Behavior
Execution of actions inside Cold Gradle Daemon in IDEA takes 6.6 seconds
Expected Behavior
Execution of actions inside Cold Gradle Daemon in IDEA takes 5 seconds
Context (optional)
Investigated log reload of a tine project on a Windows machine.
The telemetry shows that a lot of time is spent inside the KotlinDslScriptModelProvider
Attached snapshot shows that 1.7 seconds are spent by Gradle code in KotlinDslScriptsModelBuilder to resolve the readily available (downloaded and unpacked) sources.
This seems unnecessary.
OpenTelemetry:
Zipped JFR: GradleDaemon_2024_04_26_200508.zip
Steps to Reproduce
Get the attached project, open and sync it in the IDEA.
Stop the running Gradle daemon.
Execute sync once again.
Gradle version
8.2
Build scan URL (optional)
No response
Your Environment (optional)
No response

This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary.

The way the Gradle distro is turned into usable source directories for the IDE is by using two artifact transforms.
The first one unzips the distro, the second one selects the relevant directories from it.
These transforms are cached locally. Gradle needs to snapshot their inputs and outputs in order to have a cache hit.
The output of the first transform is the directory of the unpacked distribution.
The input to the second transform is the same.
The outputs of the second transform are all relevant source directories.
This is a lot of files and would explain why it takes a while on Windows' poor i/o.
Could you please provide a build scan of your observation?
They now contain insights on transforms that could help confirm that theory.
In any case we should rework this transformation pipeline. Merging the two transforms should greatly reduce the overhead.

This is the part of JFR in question. Please note this is the Wall time (not CPU)

I will do the build scan shortly

Unfortunately, I am unable to do the build scan.
I need to configure the ToS agreement in a build script (as sync is non-interactive).
But the develocity plugin fails with the following error (tried Gradle 8.2, 8.4 and 8.7):
Build file 'C:\Users\Nikita.Skvortsov\tmp\untitled\build.gradle.kts' line: 1

An exception occurred applying plugin request [id: 'com.gradle.develocity', version: '3.17.3']
> Failed to apply plugin class 'com.gradle.scan.plugin.BuildScanPlugin'.
   > The build scan plugin is not compatible with Gradle 6.0 and later.
     Please use the Develocity plugin instead.

will take a look, thank you!

I can confirm the improvements. In my test environment it shows improvement from ~1600 ms to ~600 ms. Thank you!


Fix floating point handling in Java

Updates Java library to pass tests. Addresses issues #345 and #307.
Removes BigDecimal by using integer (longs) calculation for encoding and decoding.
(This change is built on #346.)

This implementation is significantly faster than the old one:

encoding is almost 30 times faster (0.253usec vs 6.983usec)
decoding is slightly faster (2.814usec vs 3.293usec).

(Both times from the TravisCI tests.)
Previous:
.Encode 1000000 loops in 6982908 usecs, 6.983 usec per call
.Decode 1000000 loops in 3293220 usecs, 3.293 usec per call

New:
.Encode 1000000 loops in 253486 usecs, 0.253 usec per call
.Decode 1000000 loops in 2814156 usecs, 2.814 usec per call

Hi @zongweil - this change builds on the change in #346 - if you could review that one first, I'll deal with the merge fun.


give more hints to the user when profile being uploaded to automate is not vendored

User Story
If a user tries to upload a profile to Automate, and the profile has dependencies and is not vendored, the user will receive a message like:
rpc error: code = Internal desc = InSpec archive failed for /hab/svc/compliance-service/var/tmp/inspec-upload125323500/cis-rhel7-server-l1-wrapper with message: exit status 1

Cannot fetch compliance://admin/cis-rhel7-level1-server because your compliance token has not been
configured.

Please login using

    inspec compliance login https://your_compliance_server --user admin --insecure --token 'PASTE TOKEN HERE'

in the GUI. Unfortunately, this does not mean much to many users. We should add a little line to let the user know they should vendor their profile is we receive this error.
Definition of Done
Error has better information.

@vjeffrey I have tried to reproduce this issue by uploading some profiles but not seen anything like above mention error, Please can you provide a sample profile by which I can reproduce above issue.

i'm also having trouble reproducing the issue.
i created a profile with a dependency.
did not vendor, ran tar on it
profile wasnt recognized structure by inspec when i tried to upload
so then i tried to inspec archive it, and that complained about the lack of login.
so i can't actually create a profile that would cause this failure (anymore)
closing, thanks for looking into it!


LICENSE: Add MIT header

@scottgonzalez @kborchers please can you confirm this update is ok? Thanks

Not sure how we missed this before but the copyright line needs to be updated to
Copyright JS Foundation and other contributors, https://js.foundation
Otherwise the addition of the MIT header LGTM

Copyright JS Foundation and other contributors, https://js.foundation

Updated in https://github.com/rxaviers/globalize/tree/license-mit, though it seems like github hasn't synced my updates in this PR yet (weird, never saw that before)

Wow, that is very strange 😕

There we go, now it's synced.

I know this was already merged, but since I was tagged, I figured I'd still leave my feedback.
I personally avoid doing this type of labeling because we've gone through the effort of informing users that even though this package itself is released under the terms of the MIT license, it has portions of its own code, as well as dependencies, that are released under different licenses. If you want to include the heading of "The MIT License (MIT)", I would suggest adding that on L14 rather than L1.

Makes sense Scott, I'm pushing an amend commit soon.

Updated in d01e049


Swift3?

Can we expect swift 3 migration?

I've migrated to Swift 3 over here
No tests though so I'm not sure what the impact is

+1

Closed by #46