inconsistent cell type names

The naming of cell types in meshio is inconsistent. Perhaps we can fix that now.
Abbreviated:
quad*, tetra*,
Not abbreviated:
all the rest
Needless underscores:
hexa_prism, penta_prism
Edit: As pointed out by @tianyikillua, this pretty much follows the VTK convention.
Should we use abbreviations throughout or the full form? Vote now. (Heart :heart:  for abbreviations, rocket :rocket:  for full form. Eyes :eyes: : Keep what we have)

The current cell type names are not completely insane since they follow the VTK convention right?

Ah, indeed. :smile:
It's still inconsistent though. I'll add another voting option for keeping the naming.

Right, I wondered whether there might be some existing convention that might be followed (VTK, EXODUS, femtable.org). So the current strings are based on VTK. That makes sense, or rather doesn't as it's inconsistent, as you say.
An orthogonal idea: recording information in strings is not Pythonic. Why not use objects for cell-types? Constant (or at least predefined) instances of a class CellTyoe. That way type-checkers can make more sense of code, IDEs can provide tab-completion and hover-documentation, and relevant data can be flexibly extensibly carried by the thing indicating the cell type (dimension, number of nodes, representation in other systems, ASCII-art depictions of canonical orientation, …).
As for the names of the predefined cell-types, I'll suggest adding femtable to the list of candidates but won't vote just yet..

But the femtable is for finite elements in the sense of Ciarlet...in meshio we are only interested in their geometrical shape.

Good point. Thank you, and for the reference.
But are we indeed only interested in

...Yes...but if we pursue further in this direction

we will be reinventing a new finite element data format...
the project name should be changed! It is currently mesh-io and not fem-io.

Note however that currently

isoparametric fields (P1, P2, ...) are naturally supported since the number of nodes (including mid-nodes) correspond to that of the DoF's (scalar functions), as a point_data. Super- and sub-parametric fields no.
DG0 (constant per cell) and DG1 (independently defined at the nodes of each cell) fields are also supported.

Very interesting. Thank you.
But then is the conclusion that data (defined on a finite element space) should stored separately from the mesh, outside meshio?

A mesh data is not necessarily a finite element data (the reverse is, on the other hand, true). We only provide the values at these discrete points (for point data), and let the users to decide how to interpret them and how to interpolate them.

DG1 (independently defined at the nodes of each cell) fields are also supported

How's that?  Cell data of shape (number of cells, number of nodes per cell)?

Yes that's correct.

On reflection, the femtable names aren't very readable anyway; I'll withdraw that suggestion.  Also the table doesn't cover the vertex or the degenerate cells (wedges & pyramids).

Okay, there is little interest and no actual consensus on the names here, so let's leave them as they are for now and remember our VTK heritage. :ghost:
Perhaps we'll come back to this at some point in the future.

Agreed.
A thought for that future, following the idea that ‘recording information in strings is not Pythonic’: class enum.Enum.

I just noticed that if I open an XDMF with pyramid elements, the ansys writer throws an error because it's expecting "pyra" instead of "pyramid." Not sure where the fix should be, but I fixed it by adding "pyramid" to the ansys writer cell type dict.

I just noticed that if I open an XDMF with pyramid elements, the ansys writer throws an error because it's expecting "pyra" instead of "pyramid." Not sure where the fix should be, but I fixed it by adding "pyramid" to the ansys writer cell type dict.

@flutefreak7 Fixed in #1002.

@flutefreak7 Fixed in #1002.


Can't find exported tiles on local repository

I'm following the OpenStreetMap Example to generate vertor tiles from OpenStreetMap data.
I have downloaded data for my region on Geofabrik, and imported it in postgresql using the ‘baremaps import` command, and this seems to be ok (I can see data in postgresql)
Then I try to export using the command :
baremaps export
--database 'jdbc:postgresql://localhost:5432/baremaps?allowMultiQueries=true&user=xxxx&password=xxxx'
--config 'source.yaml'
--repository 'tiles/'
The source.yaml contains the data from the exemple config.yaml
Everything seems to be ok, but I don't see any file in the "tiles" repository.
[INFO ] 2021-03-14 16:04:21.258 [main] Export - 8 processors available
[INFO ] 2021-03-14 16:04:21.290 [main] Export - Reading configuration
[INFO ] 2021-03-14 16:04:21.568 [main] Export - Initializing the source tile store
[INFO ] 2021-03-14 16:04:21.631 [main] Export - Initializing the target tile store
[INFO ] 2021-03-14 16:04:21.632 [main] Export - Generating the tiles
[INFO ] 2021-03-14 16:04:22.576 [ForkJoinPool.commonPool-worker-3] ProgressLogger - 100.0%

I tried using full directory '/mnt/e/folder/tiles', but I don't see anything either.
I'm using Ubuntu WSL2 in Windows 10.
I also tried calling the baremaps command from powershell, but the result is the same.
I don't know if there's a bug and the file are not generated, or if they are exported in a "tiles" reposiory somewhere I can't find

Are you generating tiles for France? Given the speed of the execution, you may be generating tiles for liechtenstein. If this location is empty in terms of data, the directory will not be created, which would explain your issue.
In the config.yamlfile, you can modify the bounds according to your needs. For France, the following settings should work:
bounds:
  minLon: -5.8
  maxLon: 9.6
  minLat: 41.1
  maxLat: 51.2
  minZoom: 12
  maxZoom: 14

En esperant que ça fonctionne ;)

Oh, I didn't look the config.yaml, I assumed it would export the complete database
I have started the export, and now I see the files generated
Merci beaucoup 😁

Great, regarding the openstreetmap example, it is quite minimalistic and not suitable for low zoom levels. You may want to have a look at our ongoing effort to create a more general stylesheet similar to openstreetmap-carto.


fix: Chat - Download option in three-dot menu is still available in offline mode

Details

Fixed Issues
$ https://github.com/Expensify/App/issues/36901
PROPOSAL: https://github.com/Expensify/App/issues/36901#issuecomment-1954437014
Tests

Navigate to staging.new.expensify.com
Go to any chat
Upload a video
Go offline
Tap on the video
Note that the download option on the top right disappears
Tap 3-dot menu
Verify download option is not shown

[x] Verify that no errors appear in the JS console

Offline tests

Navigate to staging.new.expensify.com
Go to any chat
Upload a video
Go offline
Tap on the video
Note that the download option on the top right disappears
Tap 3-dot menu
Verify download option is not shown

QA Steps

Navigate to staging.new.expensify.com
Go to any chat
Upload a video
Go offline
Tap on the video
Note that the download option on the top right disappears
Tap 3-dot menu
Verify download option is not shown

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/85894871/9b16598e-af3f-4e11-8372-230e1e684e60

Android: mWeb Chrome
https://github.com/Expensify/App/assets/85894871/db342ce1-7951-40c6-b1f7-f18cbdef8db0

iOS: Native
https://github.com/Expensify/App/assets/85894871/c67ed66c-8c4f-4cc2-9500-b3aa662582bb

iOS: mWeb Safari
https://github.com/Expensify/App/assets/85894871/82fb9701-4426-45e3-935d-1c7317051268

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/85894871/bd453931-8c83-441e-a7c3-7e206f17f1c4

MacOS: Desktop
https://github.com/Expensify/App/assets/85894871/b79b7651-1000-43b5-9b37-ed41e5a07a0d

Reviewing now

@Krishna2323 Can you do a merge from main? I think the typescript checks are failing in main.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/46707890/bbd91e46-82ce-4b69-9ea4-6e2d923fb51d

Android: mWeb Chrome

https://github.com/Expensify/App/assets/46707890/9c5f77d0-22da-4b89-aa07-8dbb473d59c1

iOS: Native

https://github.com/Expensify/App/assets/46707890/67b8afa1-dcb5-40c0-8caa-754c485eb21a

iOS: mWeb Safari

https://github.com/Expensify/App/assets/46707890/c31b3198-db5c-47e3-a547-6a601a79b51b

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/46707890/a3d03245-5db7-423c-8eff-4a24205111c9

MacOS: Desktop

https://github.com/Expensify/App/assets/46707890/4af6583e-89c3-4189-8f5e-817599de48cf

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/bondydaa in version: 1.4.44-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 1.4.44-13 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


[Rust] Support mutation

Support mutating a deserialised object as seen in https://github.com/google/flatbuffers/issues/5772
Maybe add setters to [x]Ref to set fields?

It wouldn't be quite as simple. All deserialized objects currently contain a &[u8] slice inside them. To support mutability we would have to change that to either &mut [u8] or &[Cell<u8>] -- but if we do that, then users would no longer be able to deserialize immutable slices.
I think a better approach would be to add additional [x]Mut types, which support mutability. We can then make a decision about whether a &mut [u8] or &[Cell<u8>] would be better. I &mut [u8] is potentially faster, but is also less ergonomic.
One compromise could be to make the reference types generic so they could work with multiple slice types.

Another option would be to improve the Builder to support loading in pre-serialized objects and then mutate at them. I'm thinking we could extend it with three features that combined gives you what you are asking for (and more):

Allow deserializing a partial message inside a non-finished Builder. When you use this API you would not get an [x]Ref<'a> out, but rather an Offset<[x]> without a lifetime.
Allow poking at the primitives in the builder using the same API. This would work, since you already have a &mut Builder.
Allow memcpying an existing message into a builder while assert that it has a certain type.

All of these functions should suitably marked as being be sound (as in no segfaults), but not safe (as in it will allow invalid messages and/or wrong interpretation of messages).

As a work-around, perhaps something like this could be of use?
table Object {
  counter: uint32;
}

use object::{Object, ObjectRef};
use planus::ReadAsRoot;

#[path = "object_generated.rs"]
mod object;

fn mutate_object(input: &[u8]) -> planus::Result<Vec<u8>> {
    let object_ref: ObjectRef<'_> = ObjectRef::read_as_root(input)?;
    let mut object: Object = object_ref.try_into()?;
    object.counter += 1;

    let mut builder = planus::Builder::new();
    let finished = builder.finish(object, None);
    Ok(finished.to_vec())
}

Note however [x]Ref<'_> can have a lot of object reuse, while there is no such reuse for [x]. This means that the generated output might be bigger than the input. For some schemas it might even be exponentially bigger if the input is constructed maliciously. This would also mean exponential runtime and exponential memory use.

The above is very much usecase specific for us. Hopefully this is a better reply...

Another option would be to improve the Builder to support loading in pre-serialized objects and then mutate at them. I'm thinking we could extend it with three features that combined gives you what you are asking for...

Extending the builder would probably mean smaller code size too, as I don't think you'd need extra [x]Mut types in the generated code. What would the interface to this look like using the builder to mutate the types?
I'm guessing it would be a bit clumsier to use than something like the syntax used for creating messages currently but we want it to be developer friendly too.

All of these functions should suitably marked as being be sound (as in no segfaults), but not safe (as in it will allow invalid messages and/or wrong interpretation of messages).

Validating the message in an O(n) way when loading would mean using [x]Mut types as the generic builder code doesn't know about the specific message schemas.


Rules based on Span Count don't work if the root span hasn't arrived

Is your feature request related to a problem? Please describe.
See this thread in Pollinators.
If we don't have a root span yet and the traceTimeout fires, we'd like it to be possible to drop an inprogress trace that has no root  because it's big -- but we can't, because the sampler is inspecting that meta.refinery.span_count field that is not added if the root span doesn't exist.
Describe the solution you'd like
A way to specify a rule that counts spans even if the count isn't attached to the root.
One option: a rule condition that applies at the trace level rather than a span field, that could inspect metadata about the trace. It needs further design work, but either specially-named fields could apply, or we could have specially-named conditions.

Our existing meta value is badly named. We call it meta.span_count but it's actually the count of all the children of the root, including spans and span events.
We should actually have several values:

meta.spanevent_count -- the number of span events on the trace
meta.spanlink_count -- the number of span links on the trace
meta.span_count -- the number of spans on the trace
meta.event_count -- the number of honeycomb events on the trace (the sum of the 3 preceding values)

In order to do this, we need to allow old configurations to continue to use meta.span_count and to opt into the new names.
There are 2 ways to do this that I've thought of:

Bump the config file version number and add individual config values for each of these fields; if version is 2, then we use the old definition, but in version 3 we interpret the new way.
Add a new, single config value called AddSpanCountsToRoot, with validation allowing only one of the two to be used, and if the plural form is used we use the new definitions.

Personally I prefer the second option, but I'd love to hear other thoughts.

This should be addressed after #555 gets fixed, since they use the same underlying mechanisms.


Link parent spans better

Background
In a big build graph, where there are many builds depending on other builds, we found that the spans were not linked correctly - all child spans were linked to the root, not to the immediate parent.
Results
We now link a child span to the "most distant" direct dependancy.
ie, if you've got:
             -> test 1 \
            /           \
Calc Version -> test 2  -> Gate Test -> Full Chain
       \    \           /            /
        \    -> test 3 /            /
         \                         /
          ------------------------

Then:

test1, test2 and test3 will be a child of Gate Test
Calc Version will be a child of Full Chain (even though it could be linked to any one of test1, test2 or test3)
Gate Test will be a child of Full Chain

How to review this PR

Pre-requisites

[ ] I have considered informing or consulting the right people
[ ] I have considered appropriate testing for my change.

[sc-87109]


Port R code from acteng/netgen here

There's some functions and docs here that I'm sure will be useful to people wanting to run this with R data science background: https://github.com/acteng/netgen
Discussed with @dabreegster already, we're looking for 'loose coupling', with the functions focussing on prepping the data rather than actually calling the tool via CLI.
Assuming we go with it there are some questions: where should the package live (in an r/ directory like odjitter being default I think)? And how can we render the auto-generated R docs (see links here): https://acteng.github.io/netgen/ ?

cc @Robinlovelace for non ATE days.

where should the package live (in an r/ directory like odjitter being default I think)? And how can we render the auto-generated R docs

A subdirectory like that is fine, yes. We can auto-generate and serve the R docs alongside the hosted web app by following https://github.com/acteng/netgen/blob/main/.github/workflows/pkgdown.yaml, but putting things in a subdirectory. When the R directory is started here, I can set this up

PR ready for review.

This is done now (cannot close from this account).

I'll set up the R docs on GH pages then close

Docs live at https://urban-analytics-technology-platform.github.io/od2net/r/


Cement perf

Better cement performance
Visible casing shoes, albeit under the cement still
Bugfix for missing casing end MD in draw
#221

Added back super simple mock data and fixed the WBP a bit

Just a general comment. Before merging this, could you please rearrange the commits into meaningful blocks?


Add specialized log message for metadata updates

Fixes: #238

Coverage increased (+0.2%) to 46.882% when pulling 1a51e9bc50f10f45c07b7b18006fd835093441ae on fix-metadata-log into 8754eb3e4a65bc907503d2bdbeaccd079cce7376 on master.


Track.get_album() returns None instead of the Album object

this happens for every track ive tried it with

Please can you give an example?
Which Python and pylast version?
Does it happen with the previous pylast version?

Python 3.6
Pylast 1.7.0
Actually I think i solved this. didn't realize I had to call
user = network.get_user("selib")
recent_tracks = user.get_recent_tracks(limit=3)
recent_tracks[0].track.get_album()

I was always calling
recent_tracks[0].get_album()
which returned None
but I was rightfully confused because
top_tracks = user.get_top_tracks(limit=3)
top_tracks [0].get_album()

actually returned the right album
Although another problem I run into was calling on the Daft Punk - One More Time track object
recent_tracks[0].track.get_album()
returning DJ geoffe - Best of Club Hits, Volume 1
instead of Daft Punk - Discovery which I listened One More Time on. but i assume that's a last.fm issue

Yes, that'll be a Last.fm data issue.

i have that issue too (making the right call i.e. print(data[i].track.get_album())
for instance:

http://www.last.fm/music/richard%2Bskelton/_/the%2Bblack%2Bdub
http://www.last.fm/music/jean%2Bmichel%2Bjarre/_/a%2Bquestion%2Bof%2Bblood

return None, while they have an associated album on the lastfm page. Other tracks return the correct album object

i should add that creating the album object from track data track.artist, track.album (string) does return the correct album object. ex:
al = pylast.Album(data[0].track.artist,data[0].album,lastfm_network)


Rename Admin Task Proposals to All Task Proposals in the left menu bar on Admin account

In the Admin account, the Admin Task Proposals (the last menu in the left side bar) has all the task proposals submitted by all users, but the name maybe hints to only Task Proposals submitted by admin.
Hence I was wondering to rename it to All Task Proposals for better clarity perhaps.

@TristanThrush @douwekiela can you kindly look into it once. Thanks :)


Use single quotes in error message for inconsistently exported merged declarations

The format string:

"Individual declarations in merged declaration {0} must be all exported or all local."

should have single quotes around the {0}.

just send a PR :D


Add command usage history

Might be beneficial if the user could cycle through and view their command history usage. Exactly like shells do. This could be implemented in to ways. a HISTORY command which would probably result in a wall of text.... or by getting the users keyboard input when they use the "up" arrow key and cycle through each individual previous command used .

So from my brainstorming, the HISTORY command seems to be fairly simple, but handling arrow keys will be require a bit more work. I'll need to look into Odin a bit more, but to detect the arrow key in a nice cross-platform way, will probably require a library, and a change to the entire input/output system. Could use something like ncurses, which is what I use for Cano. From what I can tell, it will require basically turning it into a TUI program, rather than a CLI. There may be a smaller and simpler library for just detecting keypresses, but I'm not sure.
I'll look into it a bit more, and I'll leave some more comments here as I continue my research.


Support for profile page/user subreddit (currently in beta)?

There's a new profile page thing coming in reddit, which seems quite perfect for some bots, as it doesn't require you to open a new subreddit for your bot to have it's own home.
explanation and examples
Maybe somebody knows a workaround for snoowrap to post to these 'user subreddits', or is it maybe already in developement?

You can use a user subreddit in the same way as a regular subreddit by prepending u_ to the username.
For example, to get info about the subreddit at https://www.reddit.com/user/kn0thing, you can use r.getSubreddit('u_kn0thing').

Thank you! Works perfectly. I tried u/kn0thing and whatnot but not underscore...


Reduce quota usage or request quota increase

YouTube's API allows for 10,000 quota units per day, which sounds like more than it is. Listing a channel's videos using a playlistItems list request on the channel's uploads playlist only takes one unit, but that request does not return useful information specific to each video or stream. Further requests must be made for each video or stream listed, at a rate of one unit per request. Given that this playlist returns scheduled streams and tracked channels commonly schedule more than one stream at a time, we must check at least the five most recent items in the uploads playlist at every channel data check. These checks occur every 5-10 seconds, giving a rate of 72 requests per minute at the first run through the streamer list or 36 per minute once the bot has settled down. Obviously we can reduce this by storing the last cache refresh timestamp with every stream object we push to the cache and using that to enforce a minimum time between refreshes, but there are only so few requests we can use when we need to check another channel for new streams every 5-10 seconds.

It turns out that the contents of the uploads playlist are automatically sorted by the time at which they were created. In the case of scheduled streams (commonly referred to as "waiting rooms"), this results in a problem where a channel can schedule a large number of streams at one time and only the five that were scheduled last will end up getting tracked if we stick to the default number of results. So for example if a channel schedules one stream for later in the same day and then five for the next week, we will only track the five for next week and miss today's stream until it goes live (at which point we refuse to announce it because we don't currently track whether or not we've already announced currently live streams). Thankfully, maxResults can be increased up to 50 using the same one-unit call to list playlistItems. Given that playlistItems do return a stream id, we can just sort through the entire list of 50 results and only send additional API calls to fetch information for items that don't already appear in our cache.


Cannot find module 'iconv'

You forgot to add this dependency in your package.json
npm install --save iconv

+1 and also 'temp'

Afaics both deps (iconv + temp) are there: https://github.com/dommmel/fill-pdf/blob/master/package.json#L26-L27

I'm not sure why they're not showing up in the package.json that gets downloaded (v0.0.2) but the file looks different than what's on master.
npm install fill-pdf
<EMAIL_ADDRESS>node_modules/fill-pdf

pdfmaker|⇒ node app.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'iconv'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/adam/projects/sandbox/pdfmaker/node_modules/fill-pdf/index.js:2:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

pdfmaker|⇒ cat node_modules/fill-pdf/package.json
{
  "name": "fill-pdf",
  "version": "0.0.2",
  "description": "Fill out pdf forms",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git://github.com/dommmel/fill-pdf"
  },
  "keywords": [
    "pdf",
    "fdf",
    "utf8"
  ],
  "author": {
    "name": "Dominik Heier",
    "email"<EMAIL_ADDRESS>    "url": "http://www.flexify.net/"
  },
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/dommmel/fill-pdf/issues"
  },
  "homepage": "https://github.com/dommmel/fill-pdf",
  "_id"<EMAIL_ADDRESS>  "dist": {
    "shasum": "21e1fb0484a14572a3fe008bce9cafc542e0a68b",
    "tarball": "http://registry.npmjs.org/fill-pdf/-/fill-pdf-0.0.2.tgz"
  },
  "_from": "fill-pdf@*",
  "_npmVersion": "1.3.24",
  "_npmUser": {
    "name": "dommmmel",
    "email"<EMAIL_ADDRESS>  },
  "maintainers": [
    {
      "name": "dommmmel",
      "email"<EMAIL_ADDRESS>    }
  ],
  "directories": {},
  "_shasum": "21e1fb0484a14572a3fe008bce9cafc542e0a68b",
  "_resolved": "https://registry.npmjs.org/fill-pdf/-/fill-pdf-0.0.2.tgz",
  "readme": "ERROR: No README data found!"
}

After adding in deps it works (pdf wasn't there so it errors but now runs)
pdfmaker|⇒ npm install --save iconv
-
><EMAIL_ADDRESS>install /Users/adam/projects/sandbox/pdfmaker/node_modules/iconv
> node-gyp rebuild

  CC(target) Release/obj.target/libiconv/deps/libiconv/lib/iconv.o
  LIBTOOL-STATIC Release/iconv.a
  CXX(target) Release/obj.target/iconv/src/binding.o
  SOLINK_MODULE(target) Release/iconv.node
  SOLINK_MODULE(target) Release/iconv.node: Finished
<EMAIL_ADDRESS>node_modules/iconv
└──<EMAIL_ADDRESS>
pdfmaker|⇒ npm install --save temp

<EMAIL_ADDRESS>node_modules/temp
└──<EMAIL_ADDRESS>
pdfmaker|⇒ node app.js
# this error is expected, pdf really isn't there
stderr: Error: Unable to find file.

+1
@dommmel the package deps are in the repo, but the npm package is out of date. Please tag your releases and republish to npm.

@AdamBrodzinski & @uditalias,
Until the package gets update you can install it directly from github via:
npm install git+https://github.com/dommmel/fill-pdf.git --save

@dommmel,
Also your packages are out of date, there was an issue with iconv https://github.com/bnoordhuis/node-iconv/issues/124 which is causing a build error.

I just merged #8 and republished. Let me know if that resolves your issues.


:hammer: Fix test suite CI pipeline, integrate commit hash in AMI name

Closing because GitHub secrets issue need to be figured out and fixed. Refer this discussion thread.


Introducing cBallot a simple DAO implementation

 Adding new smart contract
 cBallot  is a simple but usable smart contract I maked from Ballot.sol we could reach on  Remix
 Commits on hardhat

 /contracts/cBallot.sol
 /deploy/00-deploys.js

 Adding CBallotContract Component
 ReactJS   new component to manage cBallot contract
 Commits on react-app

 /components/CBallotContract.tsx
 /components/index.ts
 /pages/index.tsx
 /utils/index.ts

 Information about this PR
Due to too many PR issues
I was lost in many forks and branches commiting too many files
I closed first PR that was linked to Gitcoin bounty
I'm able about any needing information or improvement suggestion.

Adding deployment data into hardat folder to try to pass deployment checks

Closing PR for outdated.


Feature/14127 accessibility testing for exchange sets list view page

This PR Contains code changes related to accessibility testing for exchange sets list view page

Yes..  There is no common code changes so this PR should target to main.

Yes.. There is no common code changes so this PR should target to main.

Thanks for checking.

Yes.. There is no common code changes so this PR should target to main.

Thanks for checking.


Add: Undo 'git tag'

Adding functionality to undo git tag command

@kopalchakravarty One minor thing I forgot to mentions. can you have a look at the failed ShellCheck CI test and make changes accordingly?
https://github.com/Bhupesh-V/ugit/runs/7746413382?check_suite_focus=true
Its a issue about using the read command.

@kopalchakravarty One minor thing I forgot to mentions. can you have a look at the failed ShellCheck CI test and make changes accordingly? https://github.com/Bhupesh-V/ugit/runs/7746413382?check_suite_focus=true
Its a issue about using the read command.

Fixed it

Looks prefect. For upcoming PRs make sure to write good commit messages. For e.g instead of using ugit: undo git tag repeatedly use something like remove uncessary error report if user cancels the operation, fix shellcheck read warning etc.
Other than great work 🔥

@all-contributors please add @kopalchakravarty  for code


Implement/check proper treatment of over-aligned Vec and Vector data

The Vec<D, T> class typically uses an unaligned array T[D] to store its data. However, when UM2_ENABLE_SIMD_VEC is on, if D  is a power of 2 and T is an arithmetic type, then GCC vector extensions are used as the underlying storage instead. This enables very nice SIMD optimizations on Vec. It also increases its alignment from sizeof(T) to D * sizeof(T). See
https://godbolt.org/z/or73xrxbh.
However,  in Vector<T> , we allocate memory to store T using (1) https://en.cppreference.com/w/cpp/memory/new/operator_new. It is unclear whether this memory will be appropriately aligned, since we do not explicitly request an alignment. Therefore, when using over-aligned types or GCC vector extensions we want to verify that the memory, access to the memory, and related pointers are appropriately aligned.
Failure to properly align will result in undefined behavior, reads that are incorrect, and likely segfaults.
Tasks related to this issue are:

[x] When  UM2_ENABLE_SIMD_VEC  is off, ensure that T[D] is still aligned for types which map to SIMD vectors. Use something like

static consteval auto
isPowerOf2(Int x) noexcept -> bool
{
  return (x & (x - 1)) == 0;
};

template< Int D, class T>
static consteval auto
vecAlignment() noexcept -> Int
{
  if constexpr (isPowerOf2(D) && std::is_arithmetic_v<T>) {
    return D * sizeof(T);
  } else {
    return alignof(T[D]);
  }
};

template <Int D, class T>
class Vec
{

  using Data =  typename VecData<D, T>::Data;
  alignas(vecAlignment<D, T>()) Data _data;
...
};

[x] Investigate usage of new  and delete in Vector and ensure that all pointers use properly aligned memory for over-aligned types. It should be sufficient to check addressof(pointer) % alignof(T) == 0

A potential add-on task:

[x] When T is not an arithmetic type, but the underlying representation still maps to a SIMD vector, investigate usage of that SIMD vector as the storage. Example: Vec<2, Vec<4, double>> can be stored as __m512. When  UM2_ENABLE_SIMD_VEC is off and the storage is aligned, clang18 is able to perform optimizations like this, but gcc14 is not. Testing addition of two Vec<2, Vec<4, double>> shows a single 512-bit add for aligned array storage in clang18, but two 256-bit adds when using GCC vector extensions.

Implemented in "format" branch, which will be merged into main in the next few days.


New version: ClusterValidityIndices v0.1.4

Registering package: ClusterValidityIndices
Repository: https://github.com/AP6YC/ClusterValidityIndices.jl
Created by: @AP6YC
Version: v0.1.4
Commit: aea89b3a2ec822a5b4551435502347a742d49925
Reviewed by: @AP6YC
Reference: https://github.com/AP6YC/ClusterValidityIndices.jl/commit/aea89b3a2ec822a5b4551435502347a742d49925#commitcomment-50129094
Release notes:

New CVIs:

Generalized Dunn's Index 43 (GD43)
WB Index (WB)

I apologize that I have updated versions too quickly for the TagBot, so this merge request is now deprecated. Please close at your convenience.


Eliminate dependency on DeviceLab mac23 for Apple development signing certificate renewals

The certificate renewal process is described in How to rewnew the DeviceLab development certificate (Google-internal). In the Create the new signing certificate section, we rely on mac23 to perform the renewal, this and the related Apple Developer account are single points of failure.

[ ] Allow renewals to be performed using any Apple Developer account that is authorised to create a developer signing certificate.
[ ] Allow the certificate creation process to be performed from any authorised user's machine.

Related https://github.com/flutter/flutter/issues/155127


fix: Undo / redo behavior on LG resources

Description
wrap the updatelg function as undoable
Task Item
closes #1212
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Code refactor (non-breaking change which improve code quality, clean up, add tests, etc)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Doc update (document update)

Checklist

[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have functionally tested my change

Screenshots

@cwhitten  @a-b-r-o-w-n  this one looks good to me now.
The root cause of LG undo\redo behavior not reflected in Form is that form use local data which only init once when first render, after first render the data flow is single-direction (local => global). So, when a global redo/undo updated the store, the local data is not synced.
The reason we choose a single-direction data flow is for consistency and efficiency, which is good. So the fix here @lei9444  did is to track the state is updated by other data source other than Form (so far it's only undo/redo, if i understand correctly), then Form will decide to re-init local data once it knows this piece of data is updated externally.


refactor_atkey: Data not being displayed in the wavi_app

Lead: @purnimavenkatasubbu
Describe the bug
Saved data is not being displayed in the new wavi app
To Reproduce
Steps to reproduce the behavior:

First point to branch of refactor_atkey in dependency overrides
Then install the wavi app
And then add details as firstname,lastname , phone and save
Check the saved details

Expected behavior
Details entered should be saved and displayed correctly
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):

Device: Google pixel

Were you using an @application when the bug was found?

[e.g. @ wavi]

Additional context
at_Wavi_app - staging
at_client - refactor_atkey
at_commons - refactor_atkey

refactor_atkey branch is no longer valid. Tested the issue with the latest client and commons pub dev versions. The issue does not exist.


Adding suppressions for Microsoft.Batch RP API

The following operations use proxy objects that do not conform to the ARM
specification. These were written prior to the guidelines update stating that
all objects must conform.

Their shape will be changed in a future API version but would require a
breaking change to existing users for existing versions

Microsoft.Batch/batchAccounts/applications
Microsoft.Batch/batchAccounts/applications/versions

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes.
[ ] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[ ] My spec meets the review criteria:

[ ] The spec conforms to the Swagger 2.0 specification.
[ ] The spec follows the guidelines described in the Swagger checklist document.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Can one of the admins verify this patch?

Signed off from ARM - Reason: Changes required would result in a breaking change. The newer API version would address these issues.

Automation for azure-sdk-for-java

Because these changes are only adding suppressions, and do not tough Swagger files themselves, I'm going to go ahead and merge this PR without waiting for explicit author acknowledgement.


Enable inferencing for various model frameworks/outputs

Will need to look into what the outputs are like for various different models and see how I should store them, as well as how inference is run for:

[ ] PyTorch
[ ] tf/keras
[ ] Darknet

Ideally I'd like to be able to enable sliding windows to cover images for things like segmentation masks.

Issue moved to CosmiQ/solaris #23 via ZenHub


Git fails with self-signed certificate?

Agent version and platform
Version of your agent? 2.109.1

OS of the machine running the agent? OSX/Windows/Linux...
Windows

VSTS type and version
On-Prem TFS 2015 with Update 2

If On-Prem TFS, which release, 2015 RTM/QU1/QU2?
2015 Update 2
What's not working?
In order to use GIT locally on my workstation to connect to our TFS server, I have to add the ssl cert to the end of the "ca-bundle.crt" file in my git global installation location (which happens to be "C:\Program Files\Git\mingw64\ssl\certs").  This allows git to recognize the ssl cert for our self-signed certificate on the TFS server.
GIT is not installed globally on the build server, instead we were hoping to reply on the GIT that is included with the build agent.  We have added the cert for the tfs server to the end of the .cert file for the build agent located at "'D:\TFSAgents\VSBuild3\externals\git\mingw64\ssl\certs", but the build still fails when trying to get sources from the git repository.
We even tried setting the global git config variable "http.sslVerify" to "false" to completely ignore sslVerification globally on the build server, but the "get sources" step always fails with the following error:

fatal: unable to access 'https://test-tfs.company.com/tfs/Treasury/TL41 Industrial Facility Exemption/_git/TL41 IFE Git/': SSL certificate problem: unable to get local issuer certificate

We are not sure what else to do.  Does the agent not support git over ssl with self-signed certificates?
I have attached the build log for review.
1_Build.txt
And also the output from the "git config --list" command showing the git configuration for the build agent.

We have also tried manually setting the "http.sslcainfo" value in the git config to the explicit location of the cert file, with no effect.
Any ideas?

@lukekim is your agent running as windows service or interactive? if it's running as service, you need set system level git config if the service is running as an account other than your logon account, like NETWORKSERVICE.
git config --system http.sslVerify false

click the wrong button...

That appears to have resolved the issue.  Thank you so much!

I still have the issue, I have an TFS 2018 RC2 and currently one agent, both running on differend servers with 2012 R2 as OS. The Root- and Sub CA Cert is installad within the git store and it worked until today, I don't really get it, because the only issue that seems to be present is the one where the cert is not installed. Even 'git config --system http.sslVerify false' did nothing :( any suggestions?

@Burbert the agent carries its own copy of MinGit. git config --system will only affect git installed in your  %PATH%, you can use git config --global as long as you run the git config as same user your agent run as.


Add application URL

and simulator URL
to repositories.py

https://github.com/itu-devops/lecture_notes/blob/master/repositories.py


NAV Designsystem as a dependency

Introduces NAV's design system as well as Tailwind CSS. It's a hybrid solution, so it's possible to use both BaseUI and design system elements for future developments. The preferred approach is probably to use the design system though.
The motivation is that we're supposed to cram PVK stuff into this app, and I (and the designers) don't want to use BaseUI for these future features.
A few things break in the BaseUI elements, such as spacing. To fix this I think we're forced to use Tailwind CSS, but I hope that's okay anyway!!
Have a look at the code so far, check out how it looks, and if there are any questions let me know!

oops, after a review by @PaulMartinKokseter we've found that tailwind with postcss-import (as recommended by NAV's designsystem) is not supported by Create React App, which is the framework we're using in our application. see more here: https://tailwindcss.com/docs/guides/create-react-app
the recommendation by tailwind is that we should migrate to a different react-based framework like vite, parcel, next.js or remix. i've got a fair bit of experience with next.js, and i can see if it's reasonably possible to migrate.

347e3a1f40e74e210b89bddf13fabb09f2a87c96 fixes our postcss woes for now, by including craco. this means we get to configure some of these unconfigurable parts of CRA, most importantly postcss, without any need to migrate to any other framework!

@shayany @andregroseth @JeremiahUy ping? :eyes:


merge from dev into deployment_with_certificates

This change is

remove this PR
and start from dev a new branch for cert and scbe credentials


Update template.yaml to resolve npm ERR

Resolve error:
npm ERR! cipm can only install packages with an existing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or later to generate it, then try again.
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I had the same error, this change solved my issue


LicenseView improvements

Please have a look at the individual commit messages for the details.

Note: This requires rule adjustments.

Note: This requires rule adjustments.

Merging despite the bogus failure in WindowsAnalyzerTest.

Merging despite the bogus failure in WindowsAnalyzerTest.


Publish-BcContainerApp still hangs when publishing to SaaS

PLEASE DO NOT INCLUDE ANY PASSWORDS OR TOKENS IN YOUR ISSUE!!!
Describe the issue
When we install our extension to a sandbox environment from a release pipeline in DevOps by using PowerShell the extension is installed/upgraded and visible in extension management but the release pipeline remains running. We need to cancel the pipeline manually so other pipeline in the queue can start.
See also issue https://github.com/microsoft/navcontainerhelper/issues/2718 with the same issue.
I have already set the parameter NoOfSecondsToSleepAfterPublishBcContainerApp to 10 seconds in c:\programdata\bccontainerhelper\bccontainerhelper.config.json file but this doesn't work unfortunately. You can see the screenshot the parameters seems to be set correctly.
Scripts used to create container and cause the issue
Publish-BcContainerApp `
    -bcAuthContext $authContext `
    -environment $environment `
    -syncMode "ForceSync" `
    -appFile $app

Full output of scripts
See screenshot below
...

Screenshots

Additional context

does it happen all the time? Yes 8 from 10 times it happens
did it use to work? No

The other failure came because of multiple apps being installed after each other.
This one seems to be the first installation.
How much time have you tried to wait?
Does it actually install the app?

This was just an example. Our solution contains 4 apps: A, B, C and D. Apps B, C and D are dependent on app A. In the release pipeline we execute each app by using the Publish-BcContainerApp statement.
We manually cancel the pipeline after 15 minutes after the last extension is installed.
The pipeline does install all the apps.

Hi Freddy,
I've made 2 changes in the script:

Using BcContainerHelper version 6.0.29-preview1272
Using BcContainerHelper version 6.0.29-preview1272

Unfortunately the installation of the first/core app of our solution is installed successfully but than the installation hangs and the other 3 apps are not updates. I've waited more than 15 minutes.
At this moment I run the Publish-BcContainerApp command for each app and not using an array for installing the 4 apps.

You are publishing into the dev scope - if you do this from VS Code (with forcesync) - how much time does it take?
Also, could you try to use PowerShell 5 for the task instead?

Hi Freddy,
We have used PS5 always before with the same issue. So no difference between PS5 and PS7.
I've added the useDevEndpoint parameter in the Publish-BcContainerApp command, but unfortunately still unstable to install all 4 apps.
Is there a way to unpublish/uninstall the apps by using a BcContainerHelper command in the BC Online Sandbox environment. If I do this upfront perhaps the Publish-BcContainerApp command for all 4 apps is more stable?

I could see in the logs that you where using devendpoint - so obviously no change in adding the parameter.
I would like to hear how much time deploying from VS Code takes?
And whether that is stable - try to change the version number - compile and publish a number of times - that should be exactly the same as  what happens in Publish-BcContainerApp with devendpoint.

Deployment from VS Code to sandbox SaaS online took approximately 4 to 5 minutes for 4 apps total.

Do you have any Idea based on the figures from the deployed from VSCode why the problem occurs in the pipeline and not with VS Code?

I do not
Does it happen every time - or some times? (how many percentage of the times)
can you .zip the apps together in a .zip file and on your laptop run a script with a few lines to repro this:
$authcontext = new-bcauthcontext -includedevicelogin
Publish-BcContainerApp -appfile $appfileszipped -bcAuthContext $authcontext -environmentName $environmentname

or like?


OCM-4492: add day1 admin negative cluster

Ran 2 of 48 Specs in 351.146 seconds
SUCCESS! -- 2 Passed | 0 Failed | 1 Pending | 45 Skipped
PASS
Ginkgo ran 1 suite in 5m52.245248251s
Test Suite Passed

/lgtm

/lgtm

/test rosa-sts-advanced-critical-high-presubmit

/test rosa-sts-advanced-critical-high-presubmit

/retest

/retest

/test rosa-sts-advanced-critical-high-presubmit

/lgtm
/approve


Writing with options such as header, delimiter and quote?

Is it possible to access header, delimiter and quote during output?
df.write.format("com.databricks.spark.csv").option("header", "true").save("file.csv")

yields 'DataFrameWriter' object has no attribute 'option' and trying to pass them through options yields TypeError: options() takes exactly 1 argument.
What is the correct syntax? (If implemented.)

For PySpark you pass options as last arguments to save():
save(path=None, source=None, mode='error', **options)

See documentation here: http://spark.apache.org/docs/latest/api/python/pyspark.sql.html

The .option() method was added to the PySpark API in 1.5.0: https://spark.apache.org/docs/1.5.0/api/python/pyspark.sql.html#pyspark.sql.DataFrameWriter.option

Is there any action to be take here on the part of spark-csv? Do we need to update the documentation / examples?

The README does list available options with their defaults, and also shows an example of using multiple options - seems clear.