521 target audience note

https://github.com/uwlib-cams/MARC2RDA/blob/main/Working Documents/5XX.csv

I am selecting "has intended audience of expression" as the property for mapping the string in $a .  Reasoning is to assume target audience will not vary between expression and manifestation since content is same, so choose this over "has intended audience of manifestation".

Issue related to first indicator:  definition "Display constant".  The effect of this is to append the constant in front of the contents of $a in a display interface.  For end users viewing descriptions, the bare content of $a (example, if indicator 1 i= 0, the constant is "Reading grade level", and the content of a $a = "3.1")  wouldn't make sense without the constant being visible before the $a text   Without a more granular RDA property for, say, "intended audience reading grade level of expression", or a way to use an RDA property that would modify the statement containing $a without reifying the statement (is there?),  the alternative would be to map (in a transformation) the textual value of indicator 1 (if there is one), add a colon, and concatenate this to the beginning of the content of $a as the object of the "has intended audience of expression" triple.
An obstacle to doing this might be that $a is repeatable (drat!).  However, all subfield $a's in a tag would share the same indicator 1 value, so the "display constant" could be appended in front of each one as it was mapped to RDA without ambiguity.

The other challenge for 521 is what to do about $b,  Source, defined as "Name or abbreviation of the agency or entity that determined the target audience of the item. ".   Examples in MARC21 include "LENOCA" (haven't been able to find out what this is an acronym for),  "Follett Library Book Co." which has groupings of grade levels, and "Center for Disabilities" (whose?)...  I haven't looked but I suspect there is no MARC code or term list for $b values.
I think in order to associate the source with the content of $a, we would have to reify the statement in subfield a, and then apply the Data Provenance aspect of RDA https://access.rdatoolkit.org/Guidance/Index?externalId=en-US_ala-cfa18e03-17f2-378a-874c-86515bf7e0ac .  The section that seems most applicable, to me at first reading, is
CONDITION
A potential source of metadata is not a manifestation that is being described.
A potential source of metadata does not provide additional content for a metadata work.
OPTION
Record the source of metadata as a Work: note on metadata work of the metadata work and indicate that additional information is not found in the source.

One more thought - MARC21 https://www.loc.gov/marc/bibliographic/bd521.html states a relationship with an 008 code  "Information about the target audience and/or intellectual level may also be recorded in coded form in field 008/22 (Target audience) for some types of material."  There is a controlled value list for this I think:  https://id.loc.gov/vocabulary/maudience.html .

I wonder whether an unconstrained property might be best here too? I'm thinking of large text or braille manifestations of the same expression being intended for different audiences? Would there ever be notes for that? Are those at the manifestation level?

Not sure I understand your answer here.  Unconstrained properties aren't supposed to be associated with RDA Entities, and we would have to have a URI for the subject of them, right?
I'm just saying, for a subfield indicating the source of a term or code in another subfield, either that gets appended to the string, or that string has to somehow become the subject of a predicate of some kind, with the source as an object.  Or the triple becomes the subject (which means, it's reified, one way or another - meaning, either as a blank node which then lists the subject, predicate and object, or by creating a URI for the triple and then giving the subject, predicate and object.
Some years ago I came across this blog post from Hugh Cayless at Duke who was working in the digital humanities area, and I think his points still hold, and I wonder if we would all be better of if his suggestion to apply an identifier (which could be made a URI) to every triple, became general practice..  ?

The other challenge for 521 is what to do about $b, Source, defined as "Name or abbreviation of the agency or entity that determined the target audience of the item. ". Examples in MARC21 include "LENOCA" (haven't been able to find out what this is an acronym for), "Follett Library Book Co." which has groupings of grade levels, and "Center for Disabilities" (whose?)... I haven't looked but I suspect there is no MARC code or term list for $b values.
I think in order to associate the source with the content of $a, we would have to reify the statement built from $a, and then apply the Data Provenance aspect of RDA https://access.rdatoolkit.org/Guidance/Index?externalId=en-US_ala-cfa18e03-17f2-378a-874c-86515bf7e0ac . The section that seems most applicable, to me at first reading, is CONDITION
A potential source of metadata is not a manifestation that is being described.
A potential source of metadata does not provide additional content for a metadata work. OPTION
Record the source of metadata as a Work: note on metadata work of the metadata work and indicate that additional information is not found in the source.
Not entirely comfortable with this. I suspect a lot of this metadata, especially reading level, is taken from information on the cover/jacket/initial pages of books and the scheme is transcribed from what's found there.
Fortunately, $b is not repeatable, so only one source applies to multiple $a subfields if they are present .

I think this condition is applicable only when the source does not contain the information needed, like the Authority tag 675. When information is available and taken from a source that is not the book being described, the condition above this one applies (<IP_ADDRESS>):
CONDITION
A source of metadata is not a manifestation that is being described.
OPTION
Record the source of information as a Work: source consulted of the metadata work.
If the information is taken from within the book being described, apply the option at (<IP_ADDRESS>):
CONDITION
The source of a metadata work is a manifestation that is being described.
OPTION
Record the source of information as a Work: recording source.
The problem with $b for me is that it records the name of an agency. It tells nothing about where that name is taken from, either the book in hand or a VES. So I'm leaning toward Work: related agent of work and its subtypes, or Work: note on metadata work stating something like 'assigned by [value of $b].'

Finally, mapping of $3 (material specified) raises similar questions to what we discussed today, in that, if there are not RDA entities (with URIs) for the part(s) of the expression or manifestation referenced in $3, we can't hope to match up that statement to more information about that part. Since $3 text isn't controlled, that hope is a faint one anyway.
Options include,

reifying the metadata "work" (triple) containing the $a statement and then adding a "note on metadata work" about the triple, or
appending the content of $3 to the end of the statement built from $a with some contextual punctuation.  Something like:

[Expression URI] http://rdaregistry.info/Elements/e/P20322 "Reading grade level: 3.1 (applies to: booklet)"

would be a "lossy" method, but probably not too much of a loss.   I'm ok selecting this and documenting the necessary transformations for now, if we can label this "Loss" and review at the end.

Is this approach in line with other mappings we've done? @CECSpecialistI

$3 is tricky in the context of Aggregates. If a book is issued together with a booklet, they are two manifestations each embodying an expression. If we choose to create a manifestation URI for the whole, there are three expressions manifested:
[AggregateManifestation] rdam:P30139 [AggregatingExpression] .
[AggregateManifestation] rdam:P30139 [Expression1] . # the expression realized in the book
[AggregateManifestation] rdam:P30139 [Expression2] . # the expression realized in the booklet
[AggregatingExpression] rdae:P20319 [Expression1] .
[AggregatingExpression] rdae:P20319 [Expression2] .

I don't think we can say this:
[AggregatingExpression] rdae:P20322 "Reading grade level: 3.1 (applies to: booklet)" .
It seems that we can't reify the statement and put the qualifying info in Work: note on metadata either, because 'an aggregating expression does not incorporate or accumulate the expressions that are aggregated.' (<IP_ADDRESS>)
I think we can only say:
[Expression2] rdae:P20322 "Reading grade level: 3.1" .
But if there's another tag that describes the booklet, like:
774 08 ǂi Container of (manifestation): [information about the booklet]
Then we will need to create a manifestation URI for the booklet:
[Manifestation2] rdam:P30020 [AggregateManifestation] . # the booklet is part of the whole
It does seem hopeless that we will be able to link the booklet manifestation with the booklet expression.
A similar situation is when $3's appear in multiple tags.
An easier solution could be to use Manifestation: note on manifestation (<IP_ADDRESS>) or Expression: note on expression (<IP_ADDRESS>).

@CECSpecialistI  Hmmm.  I don't see how we can create a note on expression to give details on another note on expression (which I'm choosing as the primary relation for 521 $a).  They need to be linked somehow and that would involve making note number 1 be the subject of a triple, wouldn't it?
@pan-zhuo Thanks for your comments.  About $b, I was going to just append it at the end of the string with prefix of "Source".  Because the definition is squishy (source agency or entity).   Entity?  But I'm coming around to "Assigned by".

So I went ahead for now and have just done the unstructured mapping of everything into one prepended, appended string, labeled it "loss" and maybe we should add to the RSC questions for now?  Or does anyone have more suggestions?
Again, I've mapped or deleted every row except for subfields 6 and 8.  Should I move this into Awaiting Review yet?  @CECSpecialistI you could always kick it back to "In Progress" :-)

Thank you @lake44me , sorry for not being as responsive as I'd like to be on this discussion so far. The choices you've made here make perfect sense to me, and if you feel good about them too, leaving status "loss" or "?" on things you think need extra attention is totally fine to do as you move this to "Awaiting review".

Continue asynchronous discussion here. We will discuss at meeting on 2022-04-27.

I have made the changes to provide different mappings to note on manifestation or note on expression based on the Ind. 1 display constant controller as we discussed.  Need to re-check the coverage on this (I think I am deleting a field that I added previously, but it may have been one of the original fields), and also see if there's a better way to insert an example mapped field in transformation notes (line 39, subfield 3 proposed mapping).   This is a general problem.  Awaiting decisions on subfields 6 and 8, otherwise it will be done.

Based on discussion above and here ,  I changed the mapping to has intended audience of expression if the first indicator is 0 (although I don't understand why  "0" “Reading grade level” indicates semantics that are entirely at expression level), and others to has note on manifestation.

@pennylenger: I understand the point of view of your question. As I said in the previous discussion on field 521, it seems to me that only indicator 1 = 0 is definitely and objectively an expression statement. Reading grade is based on the language of the content, which is an expression characteristic. The other first indicator values pertain to the subject of the content, which is a work characteristic. There is no work element for intended audience of the work; the concept only applies to a representative expression.
It also seems to me that reading grade is an objective measurement, in the context of readers of text in the place associated with the expression. This would be measured against national objectives for public education. The other values are more subjective and are sourced from sub-national groups with different contexts; some of the examples in the MARC 21 manual seem to be marketing recommendations.
So I think the safest default is to transform the data to a note on manifestation element, as recommended at the beginning of the discussion. I now think this should be done for reading grade as well as the other indicator values. An additional mapping to the expression element should be considered when the implications of aggregate detection are finally agreed on; the question, already mentioned in the discussion on field 521, is the choice of expression, expression aggregated, or aggregating work.


[Bug] - URL is not valid

Installing 'so' (0.4.7) [64bit] from extras bucket
The remote server returned an error: (404) Not Found.
URL https://github.com/samtay/so/releases/download/v0.4.7/so-v0.4.7-x86_64-pc-windows-msvc.zip is not valid
Valid link:
https://github.com/samtay/so/releases/download/v0.4.7/so-x86_64-pc-windows-msvc.zip

Can you make a PR for the fix?

Can you make a PR for the fix?

I can fix it.


Update faq.mdx with link to React on Rails Pro

Summary
Let those considering loadable components know there is a Ruby on Rails solution in production.
Test plan
n/a

👍


[VS Code] Timed out waiting for agent process to start.

<!--
For Visual Studio problems/feedback, please use the Report

@michelspirlandeli Thanks for reporting this! We're tracking this issue via #360, so I'm going to close this as a duplicate. Per this comment by @mikehdt, could you try re-installing the Live Share extension and see if that helps?


Open Record Method is not working in Easy Repro Framework

Bug Report
Issues should only be created for items related to covered functionality.
Not covered functionality, feature requests, and questions should use the Feature Request or Question templates.
EasyRepro Version

[ ] Microsoft Dynamics 365 Online Version 8.2 (8.2.x) (DB 8.2.x) online
[ ] Microsoft Dynamics 365 Online Version 9.0 (9.0.x) (DB 9.0.x) online
[ ] Microsoft Dynamics 365 Online Version 9.0.2 (9.0.2) (DB 9.0.2) online
[ ] Microsoft Dynamics 365 Online Version 9.1 (9.1.x) (DB 9.1.x) online

UCI or Classic Web

[ ] UCI (XrmApp)
[ ] Classic Web (XrmBrowser)

Online or On Premise

[ ] Online
[ ] On Premise

Browser

[ ] Chrome
[ ] Firefox
[ ] IE
[ ] Edge

Describe the bug

Special formatting / display

Code to reproduce

Expected behavior

Screenshots

Additional context

@jsaikartheek143 For this error, please provide more information. Is this grid the read only grid, the legacy version of the read only grid, the power apps grid control?

Merged into alyousse user branch. Pending push to develop.


Currently not able to compile solution

Downloaded your solution and tried to compile, withot any success.
Errors on declaration: using static NSelene.Selene;
Any ideas ?

Hm... I have just downloaded solution, and succeeded to compile it with Mono 4.6.0 in Xamarin Studio 6.1 under Mac OS X 10.11.4.
Maybe there can be some problems under Windows and original .Net, not mono...
Maybe your version of mono or .Net is too old to support "using static"...

Check it again. Solution is not compiled in Visual Studio 2015. Probably in Mono its [using static NSelene.Selene;] alowed.
Anyway it not compiling in VS. Any plans to fix it ? :)

It should not be about Visual Studio, or about mono vs .NET, it's about of C# version and framework that supports it...
"using static" is a feature of C# 6.0, that came with .NET framework 4.6/mono framework 4.6.
Seems like just your settings in Visual Studio for the NSelene project are set to target .NET framework 4.5 or lower. Try to check this and if yes, set it to target .NET 4.6. Here is the instruction: https://msdn.microsoft.com/en-us/library/bb398202.aspx
If there will be no 4.6 option available in the list, install it :) It should not be a problem...

Currently I don't know what can I fix:)
I succeeded to build the project under Windows 10 VS 2015 Community on a virtual machine
I asked my friend to build it too, and he succeeded to build it on Windows 8.1 in all following VS versions:

VS 2015 preview2
VS 2015 Community
VS 2013

Something weird happening on your side:) Somehow your VS do not want to support C# 6.0 features...

I recommend you to check the language feature for your project by going to Properties => Build tab => Advanced button => Language Version and set C# 6.0 in case you have a lower one.
http://joxi.ru/L21vZgGF6dGK3A

Perhaps i should verify on what .Net version i am running on.
By the way on my opinion it is worth to mention version of .NET you targeting on :)

Actually, the targeted framework version can be found here: https://github.com/yashaka/NSelene/blob/master/NSelene/NSelene.csproj
It is 4.5
And it seems to be not the problem with version of .NET framework, but with version of C# compiler, which should be 6.0
I have already written to you what is the procedure of checking/updating the language version:

I recommend you to check the language feature for your project by going to Properties => Build tab => Advanced button => Language Version and set C# 6.0 in case you have a lower one.
http://joxi.ru/L21vZgGF6dGK3A

I think we can close this issue


Doc: Subclasses in MemberIndex found under idx.instance.class

Shouldn't those show up under idx.class.property or idx.class.class ? Currently they are annotated like this.
/**
  Virtual Components. An abstract class for Virtual components, created via Component.$$.

  @class Component.VirtualNode
  @abstract
*/

function VirtualNode() {
}

I also tried to supply @static explicitly and use a fully qualified name like so:
/**
  Memberclass Foo

  @class Component.MemberClass
  @static
  @abstract
*/
Component.MemberClass = function() {
};

But still it's found under idx.instance.class.
I can implement the MemberIndexComponent so that it looks for nested classes under that url, but maybe it's easy change it so they show up under class.class or class.property.

Yep, u r right.

Will fix...

Fixed via b8da605efc7e511ba362a63acde6251eafe6a363

Thanks! Works.


Added support for writing received DICOM content to Writable streams

An attempt was made to implement C-STORE SCP streaming support, based on the ideas discussed in https://github.com/PantelisGeorgiadis/dcmjs-dimse/issues/39.
More specifically, the Scp class was enriched with two extra functions that give the caller the oppurtunity to create the stream that will receive the incoming fragment buffers and to translate the accumulated fragments back into a Dataset.
The functions are the createStoreWritableStream and the createDatasetFromStoreWritableStream, respectively. The first one provides to the user the accepted presentation context (to assess the dataset type and transfer syntax) and expects a Writable stream to be returned. The latter provides to the user the previously created Writable stream, the accepted presentation context and callback that could be used to return the parsed Dataset. The default implementation still uses memory buffers.
Bellow is a sample implementation of an Scp class that accumulates the incoming C-STORE data to temp file streams (using the temp library). Once the reception is over (last PDV fragment received), the files are read back into a Dataset which are passed to the Scp.cStoreRequest method for further processing (this is not a mandatory step - the callback can return undefined if there is no interest for passing the dataset in the Scp.cStoreRequest method).
const temp = require('temp');

class StreamingScp extends Scp {
  constructor(socket, opts) {
    super(socket, opts);
    this.association = undefined;

    temp.track();
  }

  createStoreWritableStream(acceptedPresentationContext) {
    return temp.createWriteStream();
  }

  createDatasetFromStoreWritableStream(writable, acceptedPresentationContext, callback) {
    writable.on('finish', () => {
      const path = writable.path;
      const datasetBuffer = fs.readFileSync(path);
      const dataset = new Dataset(
        datasetBuffer,
        acceptedPresentationContext.getAcceptedTransferSyntaxUid()
      );
      callback(dataset);
    });
    writable.on('error', (err) => {
      callback(undefined);
    });
  }

  associationRequested(association) {
    this.association = association;

    const contexts = association.getPresentationContexts();
    contexts.forEach((c) => {
      const context = association.getPresentationContext(c.id);
      if (Object.values(StorageClass).includes(context.getAbstractSyntaxUid())) {
        const transferSyntaxes = context.getTransferSyntaxUids();
        transferSyntaxes.forEach((transferSyntax) => {
          if (
            transferSyntax === TransferSyntax.ImplicitVRLittleEndian ||
            transferSyntax === TransferSyntax.ExplicitVRLittleEndian
          ) {
            context.setResult(PresentationContextResult.Accept, transferSyntax);
          } else {
            context.setResult(PresentationContextResult.RejectTransferSyntaxesNotSupported);
          }
        });
      } else {
        context.setResult(PresentationContextResult.RejectAbstractSyntaxNotSupported);
      }
    });
    this.sendAssociationAccept();
  }

  cStoreRequest(request, callback) {
    console.log(request.getDataset());

    const response = CStoreResponse.fromRequest(request);
    response.setStatus(Status.Success);
    callback(response);
  }

  associationReleaseRequested() {
    this.sendAssociationReleaseResponse();
  }
}

@richard-viney, @kinsonho, please review and let me know of your thoughts.

With createStoreWriteableStream(), the result is just the dataset, not a full P10 object, right?
For createDatasetFromStoreWriteableStream(), if I would like to have a filtered dataset to subsequent processing after the cStoreRequest, then I will need to split the StoreWriteableStream and create another accumulator writer stream to collect the attributes that I need. Then pass to the createDatasetFromStoreWritableStream(). Correct?

Thanks for working on this. Just some quick comments when reviewing the changes for now. I will try it out later.

@kinsonho, @richard-viney did you have the chance to test this? Any feedback?

Sorry for the long delay. I am planning to work on it this week. I will let
you know.
On Sun, May 28, 2023 at 3:40 PM Pantelis Georgiadis <
@.***> wrote:

@kinsonho https://github.com/kinsonho, @richard-viney
https://github.com/richard-viney did you have the chance to test this?
Any feedback?
—
Reply to this email directly, view it on GitHub
https://github.com/PantelisGeorgiadis/dcmjs-dimse/pull/41#issuecomment-1566241466,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3KBIDMFKNOHYOYXVERZV3XIOSZXANCNFSM6AAAAAAV7S36HY
.
You are receiving this because you were mentioned.Message ID:
@.***>

@richard-viney I just rebased to latest master. My only concern is that we still haven't handled Kinson's comment regarding the stream drain event. Looking forward for your test results!

Yes the drain comment is correct. In practice if streaming is going to disk then the incoming network data will most likely be at a slower pace than local disk writes, so you'd get away with it, but for other use cases it could become an issue.
I haven't yet looked at the implications for the library/protocol of adding a wait on the stream here.

Would it be possible to pass the CStoreRequest to createStoreWritableStream()? This would allow it access to information such as getAffectedSopInstanceUid() which would be useful for trying to write the file meta information prior to the main data set coming in, which is what I'm aiming to do.

I've got this working, ended up writing a custom DICOM P10 header prior to streaming the rest to a temporary file, which results in a valid DICOM P10. Still more testing to be done though.
My previous comment about making createStoreWritableStream asynchronous isn't important as I worked around it and deferred error handling to the existing cStoreRequest() method, which I think is reasonable given that it decides on the response to send to the SCU.
IMO the most important change to add to this branch is making the C-STORE request available, which I did in a fork here: https://github.com/HeartLab/dcmjs-dimse/commit/4192ec93237d0cd7b23f89a063c21a1426f98c03.
The only other issue was regarding drain() and back pressure, however this change is still a big improvement even without that issue being addressed. Have you had a chance to look into it? If not, I'll likely do so in the next couple of days.
Thanks.

Great news @richard-viney! Thanks for working on this! I incorporated your changes to the working branch and made an unsuccessful effort to handle stream backpressure, which I reverted… ☹
However, I’m pretty sure that we will find a way to handle it!


[#1] Do not convert non-ASCII argument terms to charlist

ascii_printable? has been lifted directly from the Elixir standard lib for Elixir 1.6 (https://github.com/elixir-lang/elixir/blob/v1.6.2/lib/elixir/lib/list.ex#L469). Chose to duplicate the function so this library would be backwards-compatible with previous Elixir versions.

tks for PR @pgrunwald.
I didn't test the project as I'm not using this lib more. so I'll accept the PR directly
this closes #1


Make Resource Viewer layout repeatable

This change divides the Resource Viewer node discovery in two parts: first during the tree traversal nodes are added to a cache, and at the end of traversal cached nodes are sorted and applied to the Resource Viewer layout. That ensures repeatable node order and consequently graph layout, while keeping the performance similar as before. This approach turned out to be more reliable than my first attempt of synchronizing the node creation by using go channels.
Nodes are sorted first by tree depth level and then by node kind/name. This not only improves the visual layout, but it also groups nodes of same kind closer together, opening a door for node grouping and collapsing/expanding.
Signed-off-by: Milan Klanjsek<EMAIL_ADDRESS>
Fixes #1944, #1798

It looks great to me!!

👍


build exe

what are these extra checks? and how to enable them?

Currently there is some problem with the exe version of open palm. I will modify it later.

Currently there is some problem with the exe version of open palm. I will modify it later.

Due to a loophole.

ok


chore(proposal): add Anthropic as coming soon AI component

Because

we want to support Anthropic AI component

This commit

add skeleton Anthropic AI component (coming soon)

@xiaofei-du
Since we already have a pull request for the Anthropic component, I'll close this one.


Error Message

I need also error message for users. this is related to #11 .
For example: There is one field that needs to be filled in(order number), then I can have a message like this to users:
"Please enter your order number".

this feature was implemented in  #11

Work very well, thank you


fix broken logs

I think all 3 of the lines that were added in #74 need to be removed from development.rb, otherwise it looks like you get the silence error that causes styles not to render.


Raster Palette

Was looking at this new public landcover dataset and pondering how to make a STAC that represents it. Seems like it could make sense to have palette/colormap values encoded in the raster extension?

I think this is most in line with this 'values' mapping object that we had in file. It clearly doesn't belong in file, I recently realized it was still there and filed an issue - https://github.com/stac-extensions/file/issues/6 I think we felt it was worth its own extension instead of putting it in raster, and @m-mohr started https://github.com/stac-extensions/classification I could also see it going directly in raster, but I'm forgetting why we didn't want it there. Though that's not quite all the way to the palette / color map. That could make sense in the 'rendering hints' extension, which I think I never quite got over the line, though most of the functionality desired ended up elsewhere.
Anyways, round about answer to say +1, would be great to have that somewhere. And I'd like to use it for Planet UDM data as well, to render our cloud / cloud shadow / clear / etc masks.

Yes, it would be great if someone could make a proposal based on file:values in the existing or a new repo. I won't have the time, unfortunately.

cc @lossyrob since he might be making a catalog on that dataset anyways, ref: https://twitter.com/lossyrob/status/1408450219793072130

The color maps are baked directly into the COG, in case that's useful info.
I'll take a look at this, not sure if I'll get time to fit in extension spec PR -> new version release -> PySTAC extensions changes before the API release...in case someone else wants to contribute that quickly (looking at you @kylebarron 😉 )

A color palette metadata is totally inline with raster extension. It was initially proposed but postponed for a future version because it was not clear if color interpretation should be part of a kind of rendering hints extension.

Yes, it would be great if someone could make a proposal based on file:values in the existing or a new repo. I won't have the time, unfortunately.

Here, I am not sure we are all talking about the same thing. Values is more about data interpretation and would be larger than color definition only.

Here, I am not sure we are all talking about the same thing. Values is more about data interpretation and would be larger than color definition only.

Agreed there's a subtle difference here. Considering the original landcover dataset that made me start this issue, there's a colormap stored within the COGs that maps data values to colors, but that isn't really a sufficient interpretation. Ideally you'd want an association from data value to color and also title/description.

Would it make more sense to have this as part of the label extension? E.g. an optional property on the Class object for "color". @kbgg I think you or other RE folk had been looking at something related, cc'ing you in case there's thoughts here.

In my use case it doesn't make sense, because it's all asset-based and as far as I understand the label extension is mostly item-based (and requires numerous additional fields, which I don't need).

I'm finally going to need some kind of replacement for file:values, which allows me to express the interpretation (description) for values in each file and/or raster band. There are probably more use cases as indicated above so that's also why the idea was to make it a separate extension, but I won't have a lot of time to wait for this. So how can we proceed with this?

Would it make sense to make this a field that can be used in raster:bands and/or eo:bands and gives a mapping between values and corresponding metadata?
e.g. something like
...
"assets": {
  "data": {
    "href": "example.tif",
    "type": "image/tiff; profile=geotiff",
    "roles": ["data"],
    "raster:bands": {
      "classification:values": [
        {
          "values": [0],
          "description": "Valid data",
          "color": "#000000"
        },
        {
          "values": [1],
          "description": "Clouds",
          "color": "#ffffff"
        },
        {
          "values": [2,3],
          "description": "Clouds Shadows",
          "color": "#cccccc"
        }
      ]
    }
  }
}
...

This is just a made-up example. Please change/expand/change with whatever your use-case requires.

For my understanding from your example: There would be a classification extension applicable at different level (asset or raster band), right?

Yes

I have a couple days next week I could devote to hashing out this topic and https://github.com/stac-extensions/classification.

@drwelby Great, go ahead. I'm happy to review. Let me know if you need access rights to that repo or so.

@m-mohr No problems cloning, I'll start an issue for gathering any input on improvements.

I would like to bring to the attention that there are datasets with continuous floating-point values that would benefit from a color palette as well. There was a great discussion at https://github.com/radiantearth/stac-spec/pull/879. However, all the currently existing proposals, this, file:values or classification, they seem to be focused on mapping discrete values.
Providing a support for a color palette with continuous floating-point values would be helpful for weather / meteorological / climatological data, because it allows highlighting important data value ranges to the user. We can use the explicit color palette to display a legend as well.
Default color palette

vs.
Explicit color palette

The most lightweight format for a color palette is an array of tuples of values and colors. The values designate breakpoints, and the color is linearly interpolated between the breakpoints. Such breakpoints don't have any textual description. The colors can be in either RGB or HSL color space, to allow HSL color interpolation.
Further improvements for consideration: logarithm scale (useful for atmospheric particle concentration data). This could be a color palette config field. Maybe something like this?
"raster:palette": {
  "breakpoints": [
    ...
    [-6, 'rgb(44, 167, 197)'],
    [-4, 'rgb(67, 181, 197)'],
    [-2, 'rgb(99, 200, 197)'],
    [0,  'rgb(127, 205, 187)'],
    [2,  'rgb(152, 220, 166)'],
    [4,  'rgb(199, 233, 180)'],
    [6,  'rgb(220, 242, 198)'],
    ...
  ],
  "scale": "linear", // enum values: linear (default), logarithmic
}

// cc @DanielJDufour I would appreciate your thoughts about this topic.

This was discussed in several issues in the Classification extension repo (such as https://github.com/stac-extensions/classification/issues/9) and the opinion that kept coming up is that palettes like this represent a styling choice for the viewer and are not really metadata. One alternative discussed was to instead link to a styling file or color map as an asset.

Thanks for the link, I haven't found it before. https://github.com/stac-extensions/classification/issues/3 seems also relevant.

the opinion that kept coming up is that palettes like this represent a styling choice for the viewer and are not really metadata

This difference makes sense especially because there is no textual description for the palette values, so it doesn't fit classification extension. Also, a single item could have multiple palettes (light/dark), with potentially different values.

One alternative discussed was to instead link to a styling file or color map as an asset.

If a color palette is in a separate asset, then it needs just a new asset role?
"assets": {
  "palette": { "href": "palette.cpt", "type": "text/plain", "roles": ["palette"] }
}

Re color palette format, gdaldem color-relief color_text_file seems as a good candidate to recommend. It's compatible with GRASS, ArcGIS, and also accepts GMT.
GMT is interesting for a reference about both my advanced ideas:

non-RGB color models - there is HSV. GDAL checks for a color model comment and fails if it's not RGB (here). Potentially GDAL could be updated to support non-RGB color models.
logarithmic scale - palette can be created with -Tmin/max+l param, so that it outputs linear color breaks from a logarithmic scale. This is good enough, a color palette just needs to be generated with enough color breaks.

I started working on cpt2json, a library to parse color palette files. It's not released yet, there are a few edge cases with GMT files left.

Thanks @zakjan, I have added info about your work to the README

It's published! I welcome any comments in the repo, especially about the output object.

Closing as this seems to be not really raster metadata, but could be provided through links to such files as discussed above.


Remove a bunch of ::table()s

The table() function is useless for application code and does nothing.

This is now conflicting due to your other PR 😓

All good now


Date localization

Even though the front-end uses the right language, most dates are still in English format (field ordering, AM/PM).
I would like to submit a request, but I am not sure how to fix this:

for PHP-rendered dates, could we use a PHP module, like the intl module ? (see http://php.net/manual/fr/class.intldateformatter.php) or use built-in code ?
for the moment.js-rendered dates, I guess moment.locale(currentLang); should be added somewhere in the page initialization.

Any answer ?

:+1: to move date on DOM using  tag with data attribute (eg: <time datetime="2015-01-08T16:40:47Z" >) and convert date on frontend using moment.js like github & c.

It seems daterangepicker embeds moment.js 2.1.0, while moment.js 2.8.4 is also loaded from the layouthtml. So far, I think the 2.1.0 version is "winning", which is causing issues.


Expose the private token and storefrontId within Hydrogen config

Description
We've exposed the private server-to-server storefront API token in the hydrogen config. The private token is necessary when deploying to production, otherwise the requests to the storefront API will be rate limited. This should make it easier to properly configure hydrogen when deploying to non-Oxygen environments. We'll also warn when in production mode and the token is not defined.
We've also added the storefrontId property to the config. It's necessary to add this as well, otherwise your analytics dashboard on the admin will be broken.
Lastly we also updagted all Oxygen environment variable references to a more consistent naming convention. The previous variables will still remain, but are deprecated, and will be removed down the road. If you still reference them, a warning will be given:

Current Oxygen Variable
New Oxygen Variable

SHOPIFY_STORE_DOMAIN
PUBLIC_SHOPIFY_STORE_DOMAIN

SHOPIFY_STOREFRONT_API_PUBLIC_TOKEN
PUBLIC_SHOPIFY_STOREFRONT_API_TOKEN

OXYGEN_SECRET_TOKEN_ENVIRONMENT_VARIABLE
PRIVATE_SHOPIFY_STOREFRONT_API_TOKEN

SHOPIFY_STOREFRONT_ID
PUBLIC_SHOPIFY_STOREFRONT_ID

Additional context
This fixes a part of https://github.com/Shopify/hydrogen/issues/1879

Before submitting the PR, please make sure you do the following:

[X] Read the Contributing Guidelines
[X] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123)
[X] Update docs in this repository according to your change
[X] Run yarn changeset add if this PR cause a version bump based on Keep a Changelog and adheres to Semantic Versioning

Can we keep the nomenclature the same @blittle — so PUBLIC_SHOPIFY_STORE_DOMAIN → PUBLIC_SHOPIFY_STOREFRONT_DOMAIN
I'd also suggest we drop the SHOPIFY part — what do you think @grahamscott ?
So …
PUBLIC_STOREFRONT_DOMAIN
PUBLIC_STOREFRONT_API_TOKEN
PRIVATE_STOREFRONT_API_TOKEN
PUBLIC_STOREFRONT_ID

Quick points!

I'm good with dropping SHOPIFY, I think these are really only being used in places where the Shopify context is already clear.

I would consider swapping in SECRET for PRIVATE — to really torque the importance of not exposing these tokens. Just a stronger word for the same idea.

STORE_DOMAIN and STOREFRONT_DOMAIN aren't technically synonymous in the context of the Shopify platform:

store domain: example.myshopify.com
storefront domain: example.com
A store may have many storefronts, after all: Online store, Hydrogen, Shop, Instagram channel, etc.

The docs use private and public to refer to environment variables, and that's also where I'll be explaining more about the storefront server tokens vis-a-vis storing in a private environment variable. I like the idea of keeping the language consistent.

I have not been able to figure this out after a lot of digging. Am trying to add this "SHOPIFY_STOREFRONT_API_SECRET_TOKEN", I obtained it from the API Credentials section of my storefront app in my shopify account admin panel, when I add this to env variables I get a 403 Forbidden response, am I doing something wrong ? this happens when I run the app locally. my deployment env will be Vercel.


Franklin Gothic Book source?

Hi! I've noted that Polka's default font, Franklin Gothic Book, looks good on my Mac but the default installation doesn't support heavier weights – so bold items essentially vanish.  Likewise, there isn't a default Franklin Gothic on my iPad. So it falls back (probably Helvetica Neue, but who knows since there's no mobile inspector), but does at least render bold properly.
So my question: are you aware of a good source for a Franklin Gothic font with multiple weights (or heck, is a variable font)... and maybe isn't a 400€ font set?

Hi. I don't have a Mac, so this is useful to know. I had a look into free alternatives to Franklin Gothic at one point and the closest I could find was Rubik. It's by no means a replica - the differences are clear when they're viewed side by side - but many of the letter shapes and the overall effect are very similar, and I find both pleasing. Franklin Gothic's main advantage is that it's more readable for longer text but Rubik is good enough that I would use it without another alternative, and I haven't found any others yet.

Addendum: since this prompted me to have a second look, I think I would strongly recommend Public Sans. It is much better than Rubik as a direct replacement for Franklin Gothic, and it is also much better (in my opinion) than Libre Franklin, which is an open source variant of Franklin it's based on. I'm not aware of any free or cheap sources or distributions of an actual Franklin Gothic itself.

Thanks Callum! I did a fair bit of trying things and hunting around (starting with the fallbacks in Polka), but agreed: Public Sans seems like a wonderful option. I definitely prefer it over Rubik. It has both static and variable options to boot. Dropped it on my iPad (using Fontcase) yesterday and it looks great, will give it a go on the Mac today.


VSCode doesn't pickup types from .tsx files

I'm trying to use React JSX in my project using TypeScript and Storybook. ESLint prevents JSX in .ts files, so I have to use .tsx. Problem is, whenever I export a type from a .tsx and import it into another .tsx file, vscode doesn't infer anything. It isn't even able to navigate to the type.
// Icon.tsx
export enum COLOR_TYPES {
	BASE = 'base',
	CRITICAL = 'critical',
	INTERACTIVE = 'interactive',
	WARNING = 'warning',
	HIGHLIGHT = 'highlight',
	SUCCESS = 'success',
	PRIMARY = 'primary',
}

// Icon.stories.tsx
import { COLOR_TYPES } from './Icon'; // provides no intellisence, can't even go to `./Icon` when `CTRL+Click`ing it.

Yet when renaming Icon.tsx to Icon.ts it works beautifully! I can CTRL+Click it, hover for more info, have autocomplete, etc.

Here's my tsconfig.json:
{
	"allowSyntheticDefaultImports": true,
	"noImplicitAny": true,
	"module": "es6",
	"lib": [
		"esnext",
		"dom"
	],
	"target": "es5",
	"jsx": "react",
	"rootDirs": [
		"src"
	],
	"allowJs": true,
	"include": [
		"src/**/*"
	],
	"exclude": [
		"node_modules",
		"dist"
	]
}

VSCode settings.json
{
	"typescript.updateImportsOnFileMove.enabled": "always",
	"typescript.referencesCodeLens.enabled": true,
	"typescript.suggest.completeFunctionCalls": true,
	"typescript.referencesCodeLens.showOnAllFunctions": true,
	"javascript.validate.enable": false,
	"typescript.validate.enable": false,
	"[typescript]": {
		"editor.defaultFormatter": "esbenp.prettier-vscode"
	},
	"[typescriptreact]": {
		"editor.defaultFormatter": "esbenp.prettier-vscode"
	}
}

I also noticed that it auto imports the types as normal, but fails to infer anything beyond that. Like, it prompts me to auto-import the type, but fails to see it beyond that:

It only sees it as Import COLOR_TYPES after importing:

CodeLens also reports 0 references to COLOR_TYPE despite importing and using the type in another file.

Please share a small example project that demonstrates this issue. You can create a very simply GitHub repository for this

I cannot reproduce it anymore despite not changing anything. I shutdown my PC, woke up today and started up VSCode again and it worked. What I particularly did was change the include key in my tsconfig, and then revert that change. VSCode seemed to pick it up then and now imports are working again.
If I'm able to reproduce it again I'll re-open or submit a new ticket.


Switch to new AP/IB infra

Summary

This pull request is step 4 in the AP/IB Infra Update #576.

[x] switched from old infra to new infra 😄
[x] deprecated the derivedAPIBEquivalentCourseData implemented in #506 (it is no longer being used)

TODO
Now is probably a good time to write some e2e cypress tests -- new years resolution?? 🍾

Test Plan

AP/IB credit should not be broken 🙈

Some flows to test:

add exam that should satisfy some requirements
add exam that shouldn't satisfy any requirements
add multiple exams simultaneously
remove exams
check edges cases (like total credits requirement, FWS)

Additionally noticed that AP credit does not automatically fulfill things like Advisor-Approved Electives 😄

I think this issue was actually fixed a while ago (since at least #532 - see staging)

But you're right that the double counting issues caused by a one-to-many mapping (eg. if an exam has multiple equivalent courses) will also be fixed with the new infra.

Test plan worked for me:

[x] add exam that should satisfy some requirements
[x] add exam that shouldn't satisfy any requirements - Made AP CS = 2 and CS 1110 was no longer satisfied
[x] add multiple exams simultaneously
[x] remove exams
[x] check edges cases - total requirements + FWS worked


Performance issue on PRs with lots of changes/files changed.

Description
I wish I had a specific feature to point to, but since this issue seems to appear only when "first" loading a PR /files page, it was tricky for me to find anything conclusive with the troubleshooting tool. I'd be happy to run more diagnostics if necessary.
Basically, loading a big PR (+1179 -117 across 58 files on the example one) results in pretty slow loading/rendering and sometimes makes Firefox hang completely.
https://github.com/refined-github/refined-github/assets/1409924/79ec6e41-868d-4ed2-9068-bb19a89aa3f4
How to replicate the issue + URL
Go to https://github.com/eramdam/BetterTweetDeck/pull/519 then load the Files changed tab
Here are my settings:
Refined GitHub options.json
Extension version
<IP_ADDRESS>3
Browser(s) used
Firefox 120.0 on macOS 14.1.1

Yes that page is slow even without Refined GitHub. Blame GitHub for making loading the entire diff in view
You can try disabling show-whitespace but it's otherwise somewhat optimized

After testing a bit more I'm noticing that the difference in performance is much more noticeable on Firefox than Chrome so maybe there's something to dig into there (I thought I had written Firefox in my OP but i didn't, my bad 🤦 ). @fregante could you tell me if you notice the same thing? If not I can try to use the profiler and send the recording.

The question is: do you notice the same slowness after disabling Refined GitHub?

The question is: do you notice the same slowness after disabling Refined GitHub?

Nope, disabling Refined GitHub makes the issue go away, but I agree that on Chrome it's way less noticeable 😅
Also I think having the files sidebar opened on a PR makes it worse but im not 100% sure.

Actually for what OP has linked locked-issue seems to be the culprit. quick-comment-edit seems to slow down pages with review comments on the other hand.
Both of them uses CSS animation based observers.

locked-issue is not enabled on the files tab so that's unlikely to be the cause. I'll check if there's some loop in the code of the observer but otherwise it should be lightweight.

It actually confirms the hypothesis more. When you load the files tab directly, there's no perf issue; when you load another tab then switch to files, it's very slow. I tested the latter during bisection.

Sounds related to:

https://github.com/refined-github/refined-github/issues/6437

It looks like has-selector definitely plays a role in this. The slow down doesn't happen if it's disabled.
has-selector is force enabled by one of the (rather popular) tweaks I use:
https://github.com/black7375/Firefox-UI-Fix/blob/431d32e29e58557a71b480f43cde10e371d012ec/user.js#L15

I have layout.css.has-selector.enabled turned on as well, not because I toggled it but because I use Firefox Developer Edition which is always based on the upcoming version of Firefox, which currently is 121 and version 121 will enable :has by default: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/121#css
I just tested, and I can confirm that turning off layout.css.has-selector.enabled (while making no other changes) makes the performance problem go away.

Maybe some of us are talking about one performance problem and some of us another. Quite the coincidence if there are two of them on the Files changed tab in Firefox at the same time 😄
For me, the Files changed is sluggish in general, but especially when I try to add a PR comment – it takes tens of seconds for the comment box to appear.

The problem disappears for me when I disable locked-issue
I'm disabling the feature via hotfix for now, this is a bad bug for Firefox users.
It seems that it's somehow triggering GitHub's custom-elements events and even on the Conversation tab of that PR element.replaceWith is called 4000+ times. Unfortunately it seems to be impossible in Firefox to pin down where that call is located (🤦♂) and in Chrome the issue does not appear in my case.

I haven't investigated further, but when I'm on the PR Files changed tab and click the checkbox Viewed, I see performance degradation when the full extension is enabled.

I'm still seeing huge slowdowns on https://github.com/refined-github/refined-github/pull/6954 in Safari, even with locked-issue disabled. But bisect can't find the issue somehow, it points to CSS features. However if I disable all the features at once, it works well again.

I've been seeing this while reviewing cooljeanius/Flight_Freedom#18 on Firefox 121... I'm wondering if it has something to do with me also having NoScript installed? Firefox has been sending me alternating "an extension is slowing down your browser" warnings about both Refined GitHub and NoScript, so I'm wondering if there's some sort of interaction between the two... locked-issue was already disabled for me, but the combination of disabling show-whitespace, quick-comment-edit, and quick-review-comment-deletion appears to have helped...

I'll accept a PR that disables those 4 features on Firefox + isPRFiles

Judging by the poor performance seen on the table-input widget in https://github.com/refined-github/refined-github/pull/7211, I think this might be attributable to has selectors after all. But it's just a guess.
Turns out that letting the CSS handle it might not actually be the most efficient solution.

Just in case it is useful, for me show-whitespace seems to introduce some slowness, but it is a consistent one, everything is a little bit slower, but not unusable. While if I don't disable quick-comment-edit, it is really unusable, like in the video, where the whole tab is sort of locked and I can't even click somewhere else for a seconds or two (or three!).
Firefox 122.0 (64-bit), layout.css.has-selector.enabled=true .

Here quick-comment-edit was the culprit as well, firefox 123.0 (64 bit). Removing show-whitespace helps a bit, as Leandro pointed 👍🏻

I'm having issues too.
MAC OS: Sonama (MacMini 3 GHz 6-Core Intel Core i5)
Safari: Version 17.3 (196<IP_ADDRESS>.8)
Disabling show-whitespace, quick-comment-edit, and quick-review-comment-deletion appears to have helped too but didn't fix the issue just improves it.
When I disable the extension it opens faster.
Fun fact: When was I using MacOS Ventura I didn't have this issue

I could not open a diff at all on some PR until I turned off quick-comment-edit. The feature should probably be disabled via hotfix if it makes performance so bad.

probably be disabled via hotfix

Done
I'd accept a PR to disable the 4 troublesome features in Safari/Firefox only, via exclude: [isSafari, isFirefox]

I'm closing this issue for now, I'll release a new version after #7313 is merged.


feat: Removing the need for async Import for #18812

Fixes:-#18812

What kind of change does this PR introduce?
This pr adds a logic to remove the need for async import in StartupHelpers.js and StartupChunkDependenciesPlugin.js .
Additionally referencing all the plugins to Runtimeglobals.js.
Did you add tests for your changes?
yes
Does this PR introduce a breaking change?
No
What needs to be documented once your changes are merged?
No

@Neerajpathak07 tests are failed

Is there any documentation related the tests that I can refer to.

@Neerajpathak07 Testa are failed, you need to fix them

@ScriptedAlchemy I think the code in this project should definitely be divided into several parts because it's literally copy-paste with a lot of unnecessary/not tested things... What exactly do we need to do to solve the original problem?

The idea behind it is you do not need a import() to make federation work.
No eager consumption issue is possible because the entrypoints use async startup and call ensureChunkHandler on themselves to load eager shares or remotes before evaluation of the entrypoint module require()
Very similar to async entrypoint startup
We call require.f.consumes and remotes, the promise All and finally require(entrymodule)
Now user code does not need modification because we do not depend on the mechanics of require ensure to ensure the async parts. the entrypoint basically ensures itself

@ScriptedAlchemy I understand what you are trying to solve, but I am talking about the current pr, it looks like a not very well written implementation and no tests, so maybe we should break it into pieces

@ScriptedAlchemy I understand this, we can use mocks or even unit testing temporarily somewhere to avoid regressions

Perfect, unit test will work. ill look through this pr and my own source code and see how i can break it tup
This was a massive implementation on my end so i understand haha.
I think i might have a branch somehwere that implemented it partially, since i was not planning to support webpack and was going to go right to rspack, so i did POC about half of it in webpack branch just to provide reference of change to rspack team. Ill revive it and see if i can assist in breaking it up.
What are your thoughts about refactoring the ESM entry generation so that theres a central startuphelper file for rendering the entry startup, cjs and web use generateEntryStartup, but esm is its own file with no util function - would be nice to consolidate it into one file for startup helper string generation instead (this pr copy pastes that esm entry generation as you can see)

@ScriptedAlchemy

What are your thoughts about refactoring the ESM entry generation so that theres a central startuphelper file for rendering the entry startup, cjs and web use generateEntryStartup, but esm is its own file with no util function - would be nice to consolidate it into one file for startup helper string generation instead (this pr copy pastes that esm entry generation as you can see)

I'm not against it, the only thing we have to do is implement hooks to insert this behavior, doing it via inline (like - https://github.com/webpack/webpack/pull/18942/files#diff-1f6c9dd2a670408f845477b54bae6d20edd21b5304a7bfc8313eb904f844e4b3R108 and https://github.com/webpack/webpack/pull/18942/files#diff-1f6c9dd2a670408f845477b54bae6d20edd21b5304a7bfc8313eb904f844e4b3R43) is not a very supported architecture

Agreed. Alex would you be willing to help me adjust some of the aspects here? If I break it up into small parts.
Just for sake of speeder implementation it would be useful to have someone faster and more knowledge in day to day of webpack.
We can discuss ad-hoc and I'll start with breaking it up and implement the better parts first then we work down to the more difficult parts

@ScriptedAlchemy Do you mean this pull requests? First let's use hooks and move logic to MF plugins

What hooks and logic Alex? Do you have pseudo example of what you're imagining?

@ScriptedAlchemy For example - https://github.com/webpack/webpack/pull/18942/files#diff-1f6c9dd2a670408f845477b54bae6d20edd21b5304a7bfc8313eb904f844e4b3R43 and https://github.com/webpack/webpack/pull/18942/files#diff-1f6c9dd2a670408f845477b54bae6d20edd21b5304a7bfc8313eb904f844e4b3R108, why do not create a plugin or put in the exsting inside https://github.com/webpack/webpack/tree/main/lib/container? The current file is definitely not quite correct place.

I ask here to simply put everything in the right places and hook, and hook only when required, the current code lies in unnecessary places and is included even when the federation is not used

@ScriptedAlchemy For example - https://github.com/webpack/webpack/pull/18942/files#diff-1f6c9dd2a670408f845477b54bae6d20edd21b5304a7bfc8313eb904f844e4b3R43 and https://github.com/webpack/webpack/pull/18942/files#diff-1f6c9dd2a670408f845477b54bae6d20edd21b5304a7bfc8313eb904f844e4b3R108, why do not create a plugin or put in the exsting inside https://github.com/webpack/webpack/tree/main/lib/container? The current file is definitely not quite correct place.

ahh i see what you mean, basically lets make a new plugin to consolidate various hooks we are calling instead of adding it into another existing plugin, try to isolate it into a specific plugin for the cause.
Okay ill get to it some time next week and start sending small PRs, maybe we create a staging branch so we do not merge to main till we collect enough approved parts in the staging branch? Either way, ill try and start some of this work next week or week after

maybe we create a staging branch so we do not merge to main till we collect enough approved parts in the staging branch?

We can, let's do it when you send a Pull request :+1:

Perfect. I'll start once I return from conferences some time next week

You can add them here - https://github.com/webpack/webpack/tree/main/test/configCases/source-map


Preview showing blank screen

Describe the bug
On all my projects, bolt is just showing blank screens for the preview. I have been trying to fix it and it keeps saying its fixed but still shows the blank white screens.
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-59xggg
Steps to reproduce
bolt dev will complete running and just show a white blank screen. I am also not able to see them in the stackblitz ide
I am also not able to deploy
Expected behavior
The expected behavior is to see the preview of the project and not a white blank screen as its displaying
Screen Recording / Screenshot

Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 130
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 96147223,
  "usedJSHeapSize": 73270199,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = MichKobby
Chat ID = 5fd2bc346554

Additional context
No response

Appreciate the feedback! We are aware of this issue and are tracking it here: #1791. You can also try typing “npm run dev” in the Bolt console to see if that resolves the issue. Also, selectively disable browser extensions, especially ad blockers, to see if that resolves the issue. We appreciate your patience as improvements continue to be made!


Provide minimal server impl with attributes handling

In a couple of contexts, we've been asked to provide a minimal implementation of the Mixer API that provides only the attributes handling part of the protocol -- and, critically, requires the fewest deps possible.
This PR provides one approach to dealing with those requests. It creates a test package with a stripped down set of dependencies.
To achieve this, I removed the globalWordList.go file from the //pkg/api package and added a bunch of rules to BUILD.api to generate such a file from the source at build time. I'm not proud of the way in which that generation is done, but... well, it works for now.
Transitions static global word list to generated list from istio/api repo.

This change is

Jenkins job mixer/presubmit passed

Jenkins job mixer/pilot-regression passed

build mixer/e2e-smoketest

Jenkins job mixer/e2e-smoketest passed

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-presubmit.sh
04d6b75255584e2832f1eb5fa75f5aeeca29e862
link
@istio-testing bazel test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qiwzhang PTAL. The fake now has three channels for receiving processed attributes and info (check, report, and quota(attributes + method args) ). You can also set the server to return GRPC errors as well as control the status code in CheckResponse. You can also override the default QuotaResult per request.

It was just a suggestion, not a big issue :-)
On Thu, Aug 10, 2017 at 8:55 AM, Douglas Reid<EMAIL_ADDRESS>wrote:

@douglas-reid commented on this pull request.
In BUILD.api
https://github.com/istio/mixer/pull/1023#discussion_r132494792:

+filegroup(

name = "mixer/v1/attributes_file",
srcs = ["mixer/v1/global_dictionary.yaml"],
visibility = ["//visibility:private"],
+)

+genrule(

name = "mixer/v1/attributes_list",
srcs = [":mixer/v1/attributes_file"],
outs = ["attributes_list.txt"],
cmd = "grep -e '^- ' $(location :mixer/v1/attributes_file) | sed -e 's/- /"/g' -e 's/$$/",/g' > $@",
message = "Extracting strings",
visibility = ["//visibility:private"],
+)

+PRE = """package attributes; func GlobalList() ([]string) { tmp := make([]string, len(globalList)); copy(tmp, globalList); return tmp;}; var ( globalList = []string{"""
it certainly seems possible to create some python to write the source
before using bazel to run goimports over it.
would you be opposed to handling that in a follow-on CL (with an issue
tracking it)?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/istio/mixer/pull/1023#discussion_r132494792, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFI6g4CUUzu5Ht6vweci_kfRs0ZDy6tks5sWyfjgaJpZM4OulMA
.

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-presubmit.sh
546b87266579f5f6c716d2772467580b4599a5ce
link
@istio-testing bazel test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-presubmit.sh
2df811108c1f998625fac73058142f1d60e92ef9
link
@istio-testing bazel test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-presubmit.sh
5f1e36ca1b25ffecfab90a6c282521e9110729e3
link
@istio-testing bazel test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-presubmit.sh
f5816530435a0b79fae0223fe90e6ee439d1a4cd
link
@istio-testing bazel test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

I can work with this mock server.   But I need to make a lot of changes in my testing code to use it.
Please looking at my testing code at:  https://github.com/istio/proxy/blob/master/src/envoy/mixer/integration_test/mixer_server.go
If your mock server allow testing code to provide
adapterManager.AspectDispatcher
interface,  it will be much easier for me to use it.

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-e2e-smoketest.sh
f10647fa382d388b8dc8876bda1457c09fa6d5c0
link
@istio-testing smoke test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-e2e-smoketest.sh
29ebe2433192c8968338edcc02a612a48b5ab3e2
link
@istio-testing smoke test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qiwzhang interface added as requested.

@douglas-reid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/mixer-e2e-smoketest.sh
6f0e1977c3ee84c0f0afc2a302d7f86a22114f00
link
@istio-testing smoke test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


proc macro server crashed

rust-analyzer version: b82458818 2021-05-17 stable
After rustup update and maybe a new version of ra I get this error: 'proc macro returned error: proc-macro panicked: range end index 8 out of range for slice of length 0'.
stack backtrace:
thread 'main' panicked at 'range end index 8 out of range for slice of length 0', crates/proc_macro_srv/src/proc_macro/bridge/rpc.rs:135:1
stack backtrace:
   0: rust_begin_unwind
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:92:14
   2: core::slice::index::slice_end_index_len_fail
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/slice/index.rs:41:5
   3: <proc_macro_srv::proc_macro::bridge::server::Dispatcher<proc_macro_srv::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv::proc_macro::bridge::server::DispatcherTrait>::dispatch
   4: <proc_macro_srv::proc_macro::bridge::closure::Closure<A,R> as core::convert::From<&mut F>>::from::call
   5: proc_macro::bridge::closure::Closure<A,R>::call
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/closure.rs:27:18
   6: proc_macro::bridge::client::Literal::integer::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:244:25
   7: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:336:47
   8: proc_macro::bridge::client::BridgeState::with::{{closure}}::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:293:17
   9: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/scoped_cell.rs:75:9
  10: proc_macro::bridge::client::BridgeState::with::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:291:13
  11: std::thread::local::LocalKey<T>::try_with
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/thread/local.rs:400:16
  12: std::thread::local::LocalKey<T>::with
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/thread/local.rs:376:9
  13: proc_macro::bridge::client::BridgeState::with
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:290:9
  14: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::with
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:329:9
  15: proc_macro::bridge::client::Literal::integer
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:237:17
  16: proc_macro::Literal::i64_unsuffixed
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/lib.rs:1006:21
  17: proc_macro2::imp::Literal::i64_unsuffixed
             at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.27/src/wrapper.rs:798:56
  18: proc_macro2::Literal::i64_unsuffixed
             at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.27/src/lib.rs:1045:41
  19: syn::expr::printing::<impl quote::to_tokens::ToTokens for syn::expr::Index>::to_tokens
             at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.72/src/expr.rs:3287:27
  20: derive_more::add_helpers::tuple_exprs
             at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/derive_more-0.99.14/src/add_helpers.rs:11:20
  21: derive_more::add_assign_like::expand
             at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/derive_more-0.99.14/src/add_assign_like.rs:21:17
  22: derive_more::add_assign_derive
             at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/derive_more-0.99.14/src/lib.rs:280:29
  23: core::ops::function::FnOnce::call_once
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/core/src/ops/function.rs:227:5
  24: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:410:40
  25: proc_macro::bridge::client::run_client::{{closure}}::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:377:26
  26: proc_macro::bridge::scoped_cell::ScopedCell<T>::set::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/scoped_cell.rs:80:33
  27: proc_macro::bridge::scoped_cell::ScopedCell<T>::replace
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/scoped_cell.rs:75:9
  28: proc_macro::bridge::scoped_cell::ScopedCell<T>::set
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/scoped_cell.rs:80:9
  29: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:325:35
  30: std::thread::local::LocalKey<T>::try_with
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/thread/local.rs:400:16
  31: std::thread::local::LocalKey<T>::with
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/thread/local.rs:376:9
  32: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:325:9
  33: proc_macro::bridge::client::run_client::{{closure}}
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:370:9
  34: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/panic.rs:346:9
  35: std::panicking::try::do_call
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/panicking.rs:401:40
  36: __rust_try
  37: std::panicking::try
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/panicking.rs:365:19
  38: std::panic::catch_unwind
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/std/src/panic.rs:433:14
  39: proc_macro::bridge::client::run_client
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:369:5
  40: proc_macro::bridge::client::Client<fn(proc_macro::TokenStream) .> proc_macro::TokenStream>::expand1::run
             at /rustc/5dc8789e300930751a78996da0fa906be5a344a2/library/proc_macro/src/bridge/client.rs:410:13
  41: proc_macro_srv::proc_macro::bridge::server::<impl proc_macro_srv::proc_macro::bridge::client::Client<fn(proc_macro_srv::proc_macro::bridge::client::TokenStream) .> proc_macro_srv::proc_macro::bridge::client::TokenStream>>::run
  42: proc_macro_srv::cli::run
  43: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread panicked while processing panic. aborting.
[ERROR proc_macro_api::process] proc macro server crashed, server process state: Ok(Some(ExitStatus(ExitStatus(132)))), server request error: Os { code: 32, kind: BrokenPipe, message: "Broken pipe"

Here's a minimal example: https://github.com/NickNick/ra-proc-macro-panic-derivemore-from
For me it looks like this:

... but runs fine:
nick@fusrodah /m/d/c/ra-proc-macro (main)> cargo r
warning: field is never read: `leg`
 --> src/main.rs:4:5
  |
4 |     leg: &'a str,
  |     ^^^^^^^^^^^^
  |
  = note: `#[warn(dead_code)]` on by default

warning: 1 warning emitted

    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `target/debug/ra-proc-macro`
Hello, world!

Works for me in rustc 1.54.0-nightly (5c0292654 2021-05-11), fails in rustc 1.54.0-nightly (5dc8789e3 2021-05-21).
The proc macro ABI strikes again.

For the confused (like me), this is not caused by building rust-analyzer with nightly, but rather your own project.
The last working version is nightly-2021-05-20 and the first failing version is nightly-2021-05-21.

Thanks @ivan. rustup default stable did the trick. 😅

The solution is not to use nightly???

Or to disable proc macro support.

Turning proc macros off works. I've seen this on quite a few projects now. This seems a pretty widespread regression. Maybe proc macro should default to off for the moment as it could give a bad impression to new users - seeing a sea of red and them thinking they've done something wrong?

I would assume that most new users aren't running nightly.

For one reason or another, an awful lot of people are on nightly and their take away will be that something's up with RA because they're building fine with cargo. I think you're all doing a great job, I'm just concerned that this bug (rightly or wrongly) is making RA look flaky to a fair section of your userbase.

Disabling proc macros completely would have a far greater impact.

Hi guys, i'm getting this proc macro server crash... with my Rocket project, could you please tell me how to disable proc macros (i'm using VSCode)

ok, I figured it out

I would assume that most new users aren't running nightly.

don't think this is a safe assumption.

is this likely to be fixed soon?
how likely is this regression (or a similar one) to appear again?
what is the impact of disabling proc macros?

I'm not 100% sure, but it looks like some other things go wrong except procmacros (which is disabled) - for some reason rust analyzer does not detects errors in my code (some basic Rocket server using nightly Rust) - but it points to some errors in the dependency - Rocket (lib.rs).
when I compile my project I see the errors in the console, but rust analyzer wont bother. any ideas on what it is and how to fix it? btw completion works and detecting of some obvious syntax errors too.

Disabling proc macros will break a lot of functionality for stable users; it's not an option. We might want to think about supporting multiple ABI versions, or detecting nightlies with broken ABI and disabling proc macros for those; on the other hand, once we're following the Rust release train, we can just follow the nightly ABI.
@adsick that doesn't sound like a problem with our proc macro integration, since most errors are provided by cargo check, not our own analysis.

@adsick that sounds like a different issue, you might want to file one and provide more details.

Ok, I will try to find what is going on and file it later

so, I found out what is wrong but I dunno what to do...
In my case I figured, that running cargo check looks into dependencies first, and finds there 8 errors inside of Rocket crate saying something like ```{
"resource": "/c:/Users/vadim/.cargo/registry/src/github.com-1ecc6299db9ec823/aes-soft-0.6.4/src/impls.rs",
"owner": "rustc",
"code": {
"value": "E0514",
"target": {
"$mid": 1,
"external": "https://doc.rust-lang.org/error-index.html#E0514",
"path": "/error-index.html",
"scheme": "https",
"authority": "doc.rust-lang.org",
"fragment": "E0514"
}
},
"severity": 8,
"message": "found crate opaque_debug compiled by an incompatible version of rustc\nplease recompile that crate using this compiler (rustc 1.54.0-nightly (657bc0188 2021-05-31))\nthe following crate versions were found:\ncrate opaque_debug compiled by rustc 1.54.0-nightly (f58631b45 2021-05-28): \\?\C:\Users\vadim\Desktop\Rust\qhub\target\debug\deps\libopaque_debug-8204d61012303c65.rmeta",
"source": "rustc",
"startLineNumber": 73,
"startColumn": 9,
"endLineNumber": 73,
"endColumn": 21
}
8 times for different crates, which of course sucks, but the thing is that after that ```cargo``` does not goes into my project and therefore rust analyzer does not have info about errors in my project. That is sad because those errors don't go away, I tried ```rustup update```, ```cargo clean```, but it remains(

Presumably, the same thing happens if you run cargo check on the command line? It really seems like cargo clean should fix this, but if it doesn't, you might want to report it in the cargo repository.

oh, wait, I did a rustup update once more and now it's fine, thank you for your time)

hmm, I could think of a hack that might work: you have two release streams at the moment, a nightly rust analyser and a weekly one. If the nightly rust analyser was targeting the nightly abi that might be a resonable compromise?

That would mean supporting both ABIs anyway, so it would probably be almost as much work as just supporting both in the same build.

Same issue in rustc 1.54.0-nightly (657bc0188 2021-05-31).

Could you elaborate, @gilescope ?
I tried the following steps, and no lucky -

rustup upgrade to latest nightly
clone the master &  cargo xtask install & modify rust-analyzer.server.path settings
reload vscode

@flisky there's an open PR, but it might not be enough.

@lnicola actually I tried to build rust-analyzer on this patch, and it doesn't work for me. Anything goes wrong?

It might be https://github.com/rust-analyzer/rust-analyzer/pull/9047#issuecomment-852134592, depending on your nightly version.

Here's my fork with another commit that allows building for current nightly: https://github.com/yotamofek/rust-analyzer/tree/literal-from-str

is this likely to be fixed soon?

Right now we can't support multiple ABI versions, so we can't merge the open PR unit these nightlies hit stable

how likely is this regression (or a similar one) to appear again?

I'd guess there are about 3-4 breaking ABI changes per year.

what is the impact of disabling proc macros?

You won't get completions and other IDE features for code generated by proc macros.

Having to wait for almost 3 months to get proc-macro working again, is really a sore point for me as most of the functions of one of my libraries are generated by proc-macros, and the library depends on nightly Rust. And if this happens 3-4 times a year (although I didn't notice such a thing last year) it would be broken most of the year. So, should rust-analyzer not support multiple ABIs.

(Quoted from https://github.com/rust-analyzer/rust-analyzer/issues/6755#issuecomment-852734374)

You can either:
use an older nightly
disable proc macros
use a stable toolchain

Would it be reasonable to include this information in the macro-error diagnostic message, or otherwise display some sort of actionable warning to the user? I use a library that's pretty reliant on proc macros, and for a while now (probably about as long as this issue has been open, come to think of it), I've been wondering why I wasn't getting correct type information in a lot of places. I'd been searching issues on this repo, hacking around the issue, and otherwise just suffering through it this whole time. In fact, I had previously even disabled the macro-error diagnostic from the RA settings because it was so pervasive, and I didn't know I could do anything about it (nor did I fully understand the consequences, i.e. the missing type information). Using stable is totally viable for me on most of my projects, I just didn't realize that would fix the problem I was having.

Just hit this myself. Agreed with the logic above that if multiple such breakages happen a year with a multi-month delay before the ABI changes can be merged to RA then it seems like RA with nightly will be unusable most of the year. I don't use nightly except when I have to, but it's not uncommon to run into an existing project/library that requires nightly for one reason or another. For example, I encountered this with https://github.com/serenity-rs/serenity which relies on unstable rustfmt features.

@sbrocket you can use nightly rustfmt with cargo +nightly rustfmt.

FWIW, even if you disable proc macro support you can still get incorrect errors from this. Currently I have proc macro support disabled, and RA is giving me an error saying there is no method with a particular name on a type generated using proc macros, but the code compiles successfully.

That's normal: since the macro didn't run, rust-analyzer can't know about the code it works have generated.
You can disable these diagnostics, but only globally -- there's no way to tell "this method would have been generated by a proc macro" without actually executing the said macro.

That's normal: since the macro didn't run, rust-analyzer can't know about the code it works have generated.
You can disable these diagnostics, but only globally -- there's no way to tell "this method would have been generated by a proc macro" without actually executing the said macro.

Actually I don't believe that is normally the case, is it? Usually errors relating to proc macro generated code are suppressed, otherwise any usage of proc macro code without the server would give an error. In any case, I suspect the error I was talking about was due to a separate issue, so probably best to disregard my comment for now.

FWIW, i believe this is currently hitting beta rustc release channel.

^ it is and will hit stable on 29-07-2021, then it'll be fixed to work with the new stable. Beta and nightly will work as well unless they get proc-macro changes again.

Actually I don't believe that is normally the case, is it? Usually errors relating to proc macro generated code are suppressed, otherwise any usage of proc macro code without the server would give an error.

And it does.

Having to wait for almost 3 months to get proc-macro working again, is really a sore point for me as most of the functions of one of my libraries are generated by proc-macros, and the library depends on nightly Rust. And if this happens 3-4 times a year (although I didn't notice such a thing last year) it would be broken most of the year. So, should rust-analyzer not support multiple ABIs.

Is there a way we could handle this sort of ABI change in the future by having two channels for rust-analyzer, one that only reflects the stable API, and one for the ABI in the latest nighly? It's not as elegant as supporting multiple on the fly, but it would at least allow nightly-only / nightly-primary users like myself to keep up to date, and could be overridden in per-workspace configurations.

Fixed in #9550.


Vim implementation

Thanks for developing this theme.
I think it would be great to have a vim/neovim implementation for this. Would you feel comfortable with someone else working on it if there's nothing in the works right now?

FWIW, I started my own implementation here

Hi! Sorry, I never check my github notifications 😅
Yes, I'm happy to see other implementations. If you feel the vim implementation is reasonably complete,  we could add a link to it from the website?

Sounds good to me. If someone finds an issue with it I'd be happy to look at it some more.

Cool, I'll add a link to the site :+1:


Status definition

Hello,
We use 1607, 1703, 1709, 1803 and we have different states returned which aren't all evident:
Deployment Status: Unknown, In Progress, Progress Stalled, Failed, Update Completed, Completed, Deferred and Canceled.

Would it be possible to point us to the information detailing each one of those?

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

ID: e4f8910d-9d31-f51b-8bc1-82b5d547935e
Version Independent ID: 100142bf-a6c3-f756-e275-9e64c78d2fde
Content: Update Compliance - Security Update Status report
Content Source: windows/deployment/update/update-compliance-security-update-status.md
Product: w10
GitHub Login: @jaimeo
Microsoft Alias: jaimeo

The top states are in the documentation: https://docs.microsoft.com/en-us/windows/deployment/update/update-compliance-need-attention#update-issues
The bottom states are lower level “simplifications” of the actual state devices are in. There are many events in the download process, and we condense it to a simpler level while still giving more detailed deployment information than the above sets of states so there is greater context if things are stuck/go wrong.

@cinglis-msft My request is to know exactly what which state at it's lowest level means and the combinations between deployment and detailed status.

@officedocsbot assign @mypil

@ojrb - As discussed, please work on this issue. Thanks.

@cinglis-msft can you advise here?

Sure @mypil working on it !

Hi @mypil  the PR #3839 solved this issue ! Please review and Merge !

@cinglis-msft -  Thank you for submitting feedback.
From our understanding, the issue has been answered by @jaimeo here. If you feel it hasn't been resolved please re-open this issue.
Thank you for engaging with the community here for the docs.

@officedocsbot close


Polar Projection PDF Issue

Python 3.4
Conda 3.18.3
Matplotlib 1.5.1
basemap 1.0.7
Adobe Reader XI
Trying to plot a polar projection with a custom shapefile results in an error when opening the PDF in Adobe Reader.
I am creating two orthographic projections (a southern and northern hemisphere).
basemaps.append(Basemap(projection='ortho', lon_0=270, lat_0=90., resolution='c', ax=axes[0]))
basemaps.append(Basemap(projection='ortho', lon_0=90, lat_0=-90., resolution='c', ax=axes[1]))

I then draw a full world shapefile on each projection:
basemap.readshapefile('Earth', 'globe')
...
plt.savefig('amaps.pdf')

Everything works fine here and both basemaps display with the proper lines and shapes drawn. However, when downloading the PDF and displaying it in Adobe Acrobat, you will get something like this:
amap.pdf (which looks fine if you view it in your browser, but try downloading it and opening it with Adobe Reader).  We've determined that the problem arises when the coastline includes lon, lat pairs in the opposite hemisphere from the hemisphere that it is to be drawn in. So if you are drawing the southern hemisphere, you cannot read a shapefile that has lon, lat points in the norther hemisphere, and vise-versa.
Our workaround required creating two separate shapefiles, one for the northern hemisphere and one for the southern.  So now it looks like this:
# drawing northern hemisphere
if polar and idx == 0:
    basemap.readshapefile('Earth_north', 'nh')
elif polar and idx == 1:
# drawing southern hemisphere
    basemap.readshapefile('Earth_south', 'sh')
# drawing all other projections
else:
    basemap.readshapefile('Earth', 'globe')

This works fine but shouldn't be necessary.

Your sample file works in evince (as in doesn't crash/error; I don't know what it should look like).

@QuLogic Yes, it does work in Evince.  Try opening it in Adobe Reader.

Adobe Acrobat X also doesn't render it correctly.  Google Chrome seems to render fine.

We've determined that the problem arises when the coastline includes lon, lat pairs in the opposite hemisphere from the hemisphere that it is to be drawn in. So if you are drawing the southern hemisphere, you cannot read a shapefile that has lon, lat points in the norther hemisphere, and vise-versa.

So clipping the lines that are on the other side of the globe might be a fix?

@micahcochran That is exactly what we did with the work-around.  We had to create two different shapefiles, one for each side of the globe.  It works, but I would imagine this is something that should be patched at some point.

This issue should be fixed by matplotlib/matplotlib#5911, which just need some final review before merging.


Allow ordering specs by modification time

Closes #2762
I'm not quite sure about the implementation, so I'll wait for your feedback

Sorry for nitpicking, it's due to the feeling that in its current state this flag is not very consistent.
I'm all for introducing it, but there are some rough edges. Pretty sure we'll quickly settle on something, and that wouldn't really be a lot of code/docs for you to write.
Thanks for tackling this!

Sorry about that, but it may take me a couple of days to get to this review.

@pirj Sorry to ping you, but have you had the change to give this a second look?

@MatheusRich Sorry for yet another delay. There's a cleanup going on, going to get back to this PR when it's done.

Thanks @MatheusRich


[IMPROVEMENT] share-manager-pvc should have its own toleration setting or nodeaffinity for replica zones

Let's say one have a 3 zone, the zone A and Zone B are connected at 10Gb/s and are the zones that have storage replicas.
Zone A and B are connected to Zone C at 50Mb/s
Zone C is usually used  only for arbitrating or non I/O intensive pods and any nodes there has a zone taint.
Currently, to allow node on zone C  to mount longhorn volumes you need to set the setting taint-toleration to allow longhorn system  pods go there and also allow toleration for longhornManager.
So far no problem, it works.
The problem is when for some reason k8s decides to schedule the share-manager-pvc for some RWX volume on zone C. So, as far as I understand, all the traffic from pods running on Zone A and B would have to go through a slow link to connect to a NFS server and get back to zone A and B to get the real data. So REALLY SLOW and saturating that link.
Looking at the pod specification for the share-manager-pvc , we have:
longhorn.io/last-applied-tolerations: '[{"key":"node-role.kubernetes.io/control-plane","operator":"Equal","effect":"NoSchedule"},{"key":"topology.kubernetes.io/zone","operator":"Equal","value":"arbiter","effect":"NoSchedule"}]'

which means it is using the same toleration set in the setting taint-toleration .
Describe the solution you'd like
The share-manager-pvc should have its own toleration settings or have a required node-affinity to run in a zone that have replicas of the storage to avoid that scenario.

/remove-stallee


Add flag to cmds to use AWS profile

Add a new flag to command line utilities to allow to choose a AWS profile from the aws credentials file

Codecov Report

Merging #1791 into v0.15.x will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           v0.15.x    #1791   +/-   ##
========================================
  Coverage    24.52%   24.52%
========================================
  Files           98       98
  Lines         5085     5085
========================================
  Hits          1247     1247
  Misses        3699     3699
  Partials       139      139

Continue to review full report at Codecov.

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

Many thanks for these branch cherry-picks! 🙏


Does builder pipeline works for extensions?

I just write a customization script to add Window Number before the mode, it works great. But is that possible the pipeline works for extensions. Like tagbar?
Here comes with my scripts and screenshots:
function! WindowNumber(...)
    let builder = a:1
    let context = a:2
    call builder.add_section('airline_b', '%{tabpagewinnr(tabpagenr())}')
    return 0
endfunction

call airline#add_statusline_func('WindowNumber')
call airline#add_inactive_statusline_func('WindowNumber')

I did this because I can use <Leader>1-9 to switch to different window. So, I need the winnr showed on status line.

i don't think it does

the statusline is set by the tagbar plugin itsself. there is nothing vim-airline can do about it.

BTW: I really like your code snippet


Add RCSSounds

Only available on Curse or Mediafire.

Looks fine but I'd like to see the download field changed to http://addons-origin.cursecdn.com/files/2226/117/RcsSoundsV4.3.zip
These curse downloads can be very finicky at times so a direct path seems to work more often than the typ you've specified, even though that type also works (most of the time).

#rebuild because the bot instead built DMagicOrbitalScience and some Contract mod.

@Dazpoet done.

Looks fine and thank you @dbent for all your excellent help so far! You're awesome!

No problem, I just selfishly want All-The-Things™ in CKAN. :smiley:


CloudnetEEE-Update virtual-wan-site-to-site-packet-capture.md

As per internal discussion
Calling out SASurl issues for VirtualWAN packet captures on public doc
https://portal.microsofticm.com/imp/v3/incidents/details/256595199/home

@stegag : Thanks for your contribution! The author(s) have been notified to review your proposed change. @wellee

#sign-off

@stegag: I'm sorry - only the author of this article, @wellee, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

@wtnlee: I'm sorry - only the author of this article, @wellee, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Add Script to compare the apt repo version of Garden Linux with Debian

What this PR does / why we need it:
Script might be useful to chose which packages to upgrade in Garden Linux patch releases
Run the script like this ./hack/compare-apt-repo-versions-gl-debian.sh 1592.0
Output looks like this
base-files 13.3 13.5
bash 5.2.21-2.1 5.2.21-2.1+b1
binutils 2.43-1 2.43-2

where the first version number is the version in Garden Linux, the right version number is the version in debian testing as of now.

Thanks @Vincinator
I think there might be a few other improvements, for example it makes not much sense to have the kernel in there as we follow the LTS versions and comparing to debian's kernel version does not tell you much.
Also maybe we should filter packages we build from upstream?
I think it makes sense to use it and see where we can improve and/or generalise the scripts.
Just quickly also tested the script in a debian vm, just to make sure, will remove the comment and merge.


Error loading menu icons

When I load a menu with ~20 items, each having an icon, then push another item to the window stack, such as a Card, and finally close that window by pressing back, the following error occurs:
TypeError: undefined is not a valid argument for 'in' (evaluating 'name in def')
    at prop (lib/struct.js:231:17)
    at image (ui/simply-pebble.js:930:50)
    at onLoad (ui/imageservice.js:92:22)
    at load (ui/imageservice.js:106:11)
    at resolve (ui/imageservice.js:121:60)
    at ImageType (ui/simply-pebble.js:58:32)
    at lib/struct.js:161:32
    at menuItem (ui/simply-pebble.js:1040:10)
    at _resolveItem (ui/menu.js:168:30)
    at _preloadItems (ui/menu.js:177:22)
    at _resolveSection (ui/menu.js:158:25)
    at _prop (ui/menu.js:41:25)
    at _show (ui/window.js:89:13)
    at _show (ui/menu.js:31:31)
    at _show (ui/windowstack.js:44:13)
    at remove (ui/windowstack.js:87:15)
    at emitHide (ui/windowstack.js:116:14)
    at onPacket (ui/simply-pebble.js:1248:27)
    at onAppMessage (ui/simply-pebble.js:1291:26)

Visually nothing is affected and the app is still usable.

Just an update. This same issue appears to crash the app on the aplite platform.