WIP: fix(core): recreate component on injector change

Create a new dynamic component when the component stays the same but the injector changes.
Fixes #36

Changed PR into a WIP to add tests.


Update and rename MydealsBridge.php to MydealzBridge.php

replaced every occurence of wrongly named "mydeals" with correctly named "mydealz" (with z)
some minor edits

I am fine with renaming the elements inside the bridge, but renaming the bridge is probably not a good idea, as it would require users to re-create all their feeds

Well fixing the content of the bridge is OK.
The feed can not warn about the change needed to continue using the feed. so users will be lost.
I think we should stick with the incorrect name !


"artificial exception to rollback the transaction" causing deadlock with SqfliteQueryExecutor after upgrading Drift

This error started popping up on Crashlytics after upgrading from Moor 3.3.1 to Drift 1.6.0.
It looks like it's caused by creating a stream inside a transaction, and then throwing an exception to rollback the transaction. Here's the repro I ended up with:
import 'dart:io';

import 'package:drift/drift.dart' hide Column;
import 'package:drift/native.dart';
import 'package:drift_sqflite/drift_sqflite.dart';
import 'package:flutter/widgets.dart' show WidgetsFlutterBinding;
import 'package:path_provider/path_provider.dart' show getApplicationDocumentsDirectory;

class EmptyDb extends GeneratedDatabase {
  EmptyDb(QueryExecutor q) : super(SqlTypeSystem.defaultInstance, q);
  @override final List<TableInfo> allTables = const [];
  @override final schemaVersion = 1;
}

EmptyDb sqflite() => EmptyDb(
  SqfliteQueryExecutor.inDatabaseFolder(path: 'sqflite_db.sqlite3')
);
EmptyDb ffi(Directory documents) => EmptyDb(
  NativeDatabase(File('${documents.path}/ffi_db.sqlite3'))
);

Future<void> _trx(EmptyDb db) {
  return db.transaction(() async {
    await db.customSelect('select 1').watchSingle().first;
    throw 'oops';
  });
}

Future<void> _query(EmptyDb db) async {
  await db.customSelect('select 1').getSingle().then((r) => print('select 1: $r'));
  await db.customSelect('select 2').watchSingle().first.then((r) => print('select 2: $r'));
}

Future<void> runTest(EmptyDb db) async {
  try {
    await db.customSelect('select 1').getSingle(); // ensure database is open/created
    await _trx(db);
  } catch (e) {
    print('caught $e');
  } finally {
    await _query(db).timeout(Duration(milliseconds: 500),
      onTimeout: () => throw 'deadlocked'
    );
  }
}

void main() async {
  driftRuntimeOptions.dontWarnAboutMultipleDatabases = true;
  WidgetsFlutterBinding.ensureInitialized();

  final ffiDb = ffi(await getApplicationDocumentsDirectory());
  final sqfliteDb = sqflite();

  await runTest(ffiDb);
  await runTest(sqfliteDb); // this throws 'deadlocked'
}

It seems like this might be related to zones? The above repro no longer throws 'deadlocked' when I change runZonedGuarded to runZoned (with no onError callback).

Thanks for the helpful issue! I can reproduce this locally, and I agree with the sentiment that this is probably due to some zones being misused. Now the question is whether the bug originates in drift, sqflite or Flutter.
The first worrying thing is that the "Exception: artificial exception to rollback the transaction" even shows up in the console, it should be caught by drift internally:
https://github.com/simolus3/drift/blob/6a6d1268c48170824903c6879cee27fc27461654/drift_sqflite/lib/drift_sqflite.dart#L94-L105
Even when I change that to
  @override
  void startTransaction(Future<void> Function(QueryDelegate) run) {
    delegate.db.transaction((transaction) async {
      final executor = _SqfliteTransactionExecutor(transaction);
      try {
        await run(executor).whenComplete(() => print('transaction complete'));
      } finally {
        print('done here?');
      }
    }).catchError((_) {
      // Ignore the error!  Here we stop
      // the exception.
      print('caught internally');
    });
  }

Then neither transaction complete, done here or caught internally shows up in the logs :worried:

Ok, I think I've found the problem. The flow is essentially

Your transaction block callback is called.
You run the select stream. This starts a new cancellation zone and calls beforeOpen on the transaction executor
Still in that cancellation zone, beforeOpen now calls startTransaction which calls sqflite's transaction() block and awaits the completer.
In an outer zone (not in the select), we now want to rollback the transaction.
Dart sees that the exception from the rollback is happening in an error zone that is different from the error zone awaiting the completer internally. As errors don't cross those boundaries, all catch/finally mechanisms are ignored and the async error is considered to be an unhandled exception.
The artificial exception gets printed and the callback to actually rollback the transaction never runs, since it lived in an ignored finally block in sqflite.

My somewhat hacky fix is to run the relevant parts of step 3 outside of the error zone. I think this is conceptually ok (after all, the transactions' lifecycle is bound to the zone where it was created, not where it is first used).
Ideally, I'd like to completely remove these jumps through completers and callbacks and just issue the COMMIT/ROLLBACK calls from drift instead of using sqflite's transaction APIs. Might be considered breaking though (if some users want to use the same sqflite database instance both with and without drift and are relying on sqflite's transaction lock). Certainly a good place to do some clean-up later :D

Wow that's pretty subtle, nice find. I tried out this branch and it seems to fix the issue, just running it through CI now. Thanks so much for the quick fix!
Aside: it'd be nice if it was possible to use the zoneValues feature without also invoking the other (IMO harder-to-use) Zone features like exception handling :(


 Human Guard NPC

Description
Task: Creating a Human Guard NPC
Feature: NPC + Dialogue
Creating a Human Guard NPC that will interact with the player. This will include multiple drafts, iterations and animated pixel designs. It will be implemented and have a dialogue interaction with the player. The guard will also be holding a weapon from the weapons team.
Milestones
List of steps that need to be completed for this task.

[x] Step 1: Create rough drafts and first iteration of Pixel Models (Sep 1)
[x] Step 2: Implement animated plunger into guard's hand (Sep 3)
[ ] Step 3: User test and create second iteration (Sep 5)
[ ] Step 4: Create idle animation and documentation (Sep 8)

Completion Deadline: Sep 13
Dependencies
Creation and design of level 1 weapons #106
Documentation

Human Guard NPC
Plunger

Member

Hazeem bin Suffian (@uq-haze)
Caleb Ang (@PurrplePandaa)

Hey @uq-haze, if you could provide me with a basis of how your guard and plumber friend would look like so I can create a weapon for each of them, that would be fantastic. Looking forward to seeing your designs!

hey @PurrplePandaa, above is an image of my human guard. I will provide a plumber picture soon

Hey broski, yeah thanks for that image, I'll chuck on a plunger on the person and animate it. Please lmk how you feel about it in terms of the weapon style etc.
Here is the image I created:

Just a note, the guard should be holding a weapon instead of a plunger to look more menacing and intimidating

Yeap, I've actually designed something within sprint 1 which wasn't used. You can use the following level 1 dagger for the guard. I think it'll suit them. GuardWeapon.zip Chuck us a picture once it's integrated onto the guard's hand and then maybe I can see if the weapon needs tweaking.


Complete background calculations

This PR adds the following background functions:

hubble_distance(cosmo, a)
comoving_volume_element(cosmo, a)
comoving_volume(cosmo, a, *, solid_angle=4*pi)
lookback_time(cosmo, a)
age_of_universe(cosmo, a)

and with that closes #954 and closes #408 and now CCL will be able to calculate every distance quantity described in Hogg's reference manual .

This is not to be reviewed until current functionality has been put in v3 form. There are several other new science implementations that take priority.

Just doing some general cleaning of the repo.
This PR is very much behind the current master, so I will close it. The code within the branch could be valuable though, so I will not delete it, and we can reopen the PR if necessary.


not a problem but a gamemode idea

Hi Sh0wdown,
as far as u are doing the patches is thought it would be a good idea to tell my idea someone who got the knowledge to maybe has the possibility to implement it.
i also think that it is not soo time intense because there are no new textures needed only some new mechanics.
So here is my idea:
how would it be if the game doesnt end after a mission and instead the opponents disappear after u destroyed them ...the game continues and new (more difficult) opponents spawn (would be nice if u can choose them at that point).
Best regards,
digitalhaze

i dont think this will be worked on any time soon, this is definitly alot of work!


RenderTexture is not working as expected

Expected Behavior
I want to render a RenderTexture on to my canvas. I have a class called 'PixiSignPresentation' that extends PIXI.Container.
class PixiSignContainer extends PIXI.Container
{
    constructor()
    {
        super()

        const test = new PIXI.Graphics()

        test.beginFill( 0xFFFF00 )
        test.lineStyle( 5, 0xFF0000 )
        test.drawRect( 0, 0, 400, 400 )

        this.addChild( test )
    }
}

        this.pixi = new PIXI.Application({
            width: this.$refs.canvas.offsetWidth,
            height: this.$refs.canvas.offsetHeight
        })

        const internalCanvas = new PixiSignPresentation()
        const internalCanvasRenderTexture = new PIXI.RenderTexture.create( 400, 400 )
        const internalCanvasRenderTextureSprite = new PIXI.Sprite( internalCanvasRenderTexture )

        this.pixi.renderer.render( internalCanvas, internalCanvasRenderTexture )

        this.pixi.stage.addChild( internalCanvasRenderTextureSprite )

Current Behavior
It doesn't render anything. Console is clear.
Environment

pixi.js version: _e.g. 5.2-legacy

The idea is to have a container in the center that content gets drawn on. I will move that container around. I need it to be a specific size and don't want to use a mask due to some context I won't get in to. I'm pretty sure i'm doing something wrong but I just can't get to wrap my head around it.

I think
const internalCanvas = new PixiSignPresentation()

should be
const internalCanvas = new PixiSignContainer()

for your example to make sense. With that change it works for me.
Playground: https://www.pixiplayground.com/#/edit/weAMqj2pO1mquMwIl_TT4

I imported the container with a different name. The example had a lot of code removed.
The issue was that PIXI never had a canvas to draw on.
Now its working on my end.
Thanks man. Sometimes you just need a second pair of eyes to spot something haha


Core: Add sanity checks to dateISO

Added checks for leap years and for months that only have 30 days.
I've re-used the regex for dateISO, but I was talking to @nschonni  and from what we can see, the slashes are not part of the [ISO 8601 standard] (https://en.wikipedia.org/wiki/ISO_8601) (but the canonical source is paywalled).  It's either a dash or nothing, so maybe the regex should be /^(\d{4})(?:\-)*(0?[1-9]|1[012])(?:\-)*(0?[1-9]|[12][0-9]|3[01])$/.

Relates to https://github.com/jzaefferer/jquery-validation/issues/939 and https://github.com/jzaefferer/jquery-validation/issues/1000.

@staabm : Like so?  I was being consistent with dateITA originally.

Thanks for the contribution! While we're at it, let's drop the slashes and update the tests accordingly. I have no idea why they're there. W3C doesn't list anything with slashes either: http://www.w3.org/TR/NOTE-datetime

Just drop the slashes or also allow YYYYMMDD in addition to YYYY-MM-DD?

Just disallow slashes, only allows dashes as separator.

Does that make sense if this validator accept years between 0000 and 09999 ?
because MySQL 5.x accept dates between 1000-01-01 and 9999-12-31.

[True for MySQL] (https://dev.mysql.com/doc/refman/5.0/en/datetime.html), but different databases have different ranges (and sometimes dates are not stored in databases):
A quick search:

Postgres accepts dates between [4713 BC and 5874897 AD] (http://www.postgresql.org/docs/9.4/static/datatype-datetime.html).

Oracle seems to work between [4712-01-01 BC and 9999-12-31] (http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i1847).

SQL Server accepts dates between [0001-01-01 and 9999-12-31] (https://msdn.microsoft.com/en-us/library/bb677335.aspx).

I would think that the [min method] (http://jqueryvalidation.org/min-method/) and [max method] (http://jqueryvalidation.org/max-method/) would be the places to specify acceptable ranges.

Not sure we can handle as invalid which were valid before and vice versa. I would merge such a change only with a new major version

But was February 31st ever really valid?

at least 1990/06/06, 1990-6-6 and 1990/6/6 were valid before..


coinb.in did not add 0x00 to scriptsig for the second signature it couldn't sign

https://github.com/spesmilo/electrum/issues/3059

There is no standard on partial transaction formats.
Coinbin can only sign multisig with other coinbin users.
Please close this issue. Thanks.


feh: 2.22.2 -> 2.23

Motivation for this change
https://feh.finalrewind.org/archive/2.23/
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build feh

Thanks!


dapp: fix header line break on mobile screens

Partially solves #2604
Short description
See this comment
I'm not proud of the solution. 😑
Definition of Done

[x] Steps to manually test the change have been documented
[x] Acceptance criteria are met
[ ] Change has been manually tested by the reviewer (dApp)

Steps to manually test the change (dApp)

Use the browser dev-tools to go into the mobile view and shrink the width to 320px
Visit all routes of the dApp and verify that the header title never breaks

I fixed the CI issues. But I don't think we need to add a CHANGELOG entry for each fix of this issue?

I fixed the CI issues. But I don't think we need to add a CHANGELOG entry for each fix of this issue?

Yeah, no need to update the changelog for each fix.


Add version warning for latest docs

Description
Add version warning for latest docs to minimize confusion.
This is how it looks like:

Checklist

[x] I have manually tested my changes and I am happy with the result.
[x] The documentation reflects the changes.
[x] The PR branch is set up to merge into dev instead of master.
[x] I haven't introduced breaking changes that would disrupt existing jobs, i.e. backwards compatibility is maintained.
[x] In case I changed the dependencies in any requirements.in I have run pip-compile to update the corresponding requirements.txt.
[x] In case I changed one of the services' models.py I have performed the appropriate database migrations (refer to the DB migration docs).
[x] In case I changed code in the orchest-sdk I followed its release checklist.
[x] In case I changed code in the orchest-cli I followed its release checklist.

Merging! :shipit:


Basic auth

Fixes #17

Coverage decreased (-3.09%) to 77.591% when pulling e902df98f45ecd154b452cd79d643d454541a796 on basic-auth into 858574c943021b23ae28525c1fb5c4510d9c8e19 on master.


Upgrade Betamax to 2.0.0

Pending fix for https://github.com/betamaxteam/betamax/issues/201

In https://github.com/wildfly-extras/wildfly-camel/blob/2.17.x/itests/standalone/extra/pom.xml we can then remove
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
            <version>8.1.17.v20150415</version>
        </dependency>

My PR was merged so now bocked waiting on a new release.


Document signing into a Service Account with the Office 365 Outlook connector, with SSO (Single Sign On)

Document signing into a Service Account with the Office 365 Outlook connector, with SSO (Single Sign On).
There are two options:

Via the service account log into the Azure portal and create the connection. This will require that the Service Account has ‘Contributor’ role at the Resource Group level.
There is a parameter in the ‘Send email’ action that is From (Send as). Put the Service Account’s mailbox here, and it will send it from this mailbox. This can be done while the user has created the connection to O365 using their own account, but they will need “Send as” or “Send on behalf of” permissions on the Service Account’s mailbox for this to work.

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

ID: 959916bd-1d86-83b9-55c0-f2e97c5f90fd
Version Independent ID: be424eb8-8bd5-12d3-a2bb-e1d8c3ea64c5
Content: Connect to Office 365 Outlook - Azure Logic Apps
Content Source: articles/connectors/connectors-create-api-office365-outlook.md
Service: logic-apps
GitHub Login: @ecfan
Microsoft Alias: estfan

Hello @daviburg,  Thank you for your feedback! We have assigned this issue to the author to review further and take the next course of action.

Thanks @daviburg! I've added a work item to the doc backlog for this issue.


DRILL-5872: Workaround for invalid cost in physical plans

See DRILL-5872 for details.
Works around a bug in a storage plugin that produces NaN for a cost estimate, which then leads to profiles that can't be deserialized. This fix simply replaces the NaN in the profile with the maximum double value.
The real fix is that the storage plugin concerned should not produce NaN estimates.

@amansinha100  or @arina-ielchiieva  can you please review this?

Is there a Jira for storage plugin fix?

Fixed in planner, so closing this.


Earizon pr85 review

"Bugs" found during testing with java connector
Reopened from #89 to targetmaster

Closing this for now - as discussed on the last call, there's only one change in here that we actually want to keep, but it probably makes sense to open a new PR for that. I've opened #134 to track that and assigned it to @earizon.


[Event Request + Requests for External] Table 11401 CBG Statement Line - OnBeforeCheckIdentification

Hello,
We made some requests in https://github.com/microsoft/ALAppExtensions/issues/19494 and saw they were approved at that moment and mentioned to be implemented in Build ID: 46663.
We have version 21.2 and those requests are not implemented yet.
Could you please let us know when they will be implemented?

Event implemented and OnPrem removed. Please do not mess up requests for events and global procedures in the same request, we cannot process it together, as we implement events into master + previous version but other requests to master only. As result only part of original request have been implemented. Please verify the code and create NEW request for remaining changes if any.


Smtp

hello my members aren't getting email, what should i do

@D4rkkking
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki/How-to-ask-for-help
https://ph7cms.com/doc/en/why-pH7CMS-can't-send-emails
You should start by looking at the docs before asking questions we already answered !
Or your risk RTFM


callback function return wrong errors object if there is no "id" attribute specified in input field

Hello,
Thank you for your great work.
I found out the small issue which is if I don't specific the "id" attribute for input field, the errors object will  be returned with wrong format. The length of the errors object will always return 1 even if more than 1 errors for this validator. And all the error messages will be added to the first error.messages array.
i.e
I have 6 required input fields with only specify "name" attribute but not "id" attribute. When I submit the
errors object return
{
length: 1
messages: Array[6] { /* include all error messages */}
}
Solution:
Please add the "id" attribute to the documentation... or modify the code make it work without id attribute
Thanks,

+1

Confirmed.
I think, this is pretty unusable, when you need to specify id for each field, especially if there are more than 1 same form on the page.


Incline doesn't appear when using netrw to open a file

Steps to reproduce:

Install https://github.com/nvim-lua/kickstart.nvim
Add incline.nvim to the plugins
nvim <any directory>
Incline does not appear on launch and after opening a file with netrw

This behavior also applies to startup menus (dashboard-nvim and alpha.nvim)

Hi there, thanks for reporting, but this is the intended behavior.
Netrw uses unlisted buffers, which are ignored by default. You can adjust the ignore settings like so:
incline.setup {
  ignore = {
    unlisted_buffers = false,
  },
}

See :help incline-config-ignore for more information.

Doesn't seem to work with alpha.nvim.
{
  'b0o/incline.nvim',
  config = function()
    require('incline').setup {
      ignore = {
        unlisted_buffers = false,
      },
    }
  end,
},
{
  'goolord/alpha-nvim',
  -- dependencies = { 'echasnovski/mini.icons' },
  dependencies = { 'nvim-tree/nvim-web-devicons' },
  config = function()
    local startify = require 'alpha.themes.startify'
    -- available: devicons, mini, default is mini
    -- if provider not loaded and enabled is true, it will try to use another provider
    startify.file_icons.provider = 'devicons'
    require('alpha').setup(startify.config)
  end,
},

There are other conditions that cause windows/buffers to be ignored by default. Refer to :help incline-config-ignore. You may need to investigate alpha-nvim's code and its window/buffers to see what's causing it.


Rely on Exclusion list for filtering. Synchronise everything option.

Discussed in https://github.com/orgs/ObsidianPublisher/discussions/207

Originally posted by HighPriest August 24, 2023
Hi.
Would it fit your goals with this tool, to do not check for the share key if the config field is empty and rely on Exclusion list for files we do not want synchronised instead?
It would fit me much better if I could store my public files in one dir, private files in another.
If I work on something I do not want synchronised, I would rather give it a easily distinguishible [DRAFT] prefix to mark something not yet ready, than add unnecessary clutter to frontmatter.
So, to summarise. What I believe this requires are two things:

Add regex support in Plugin Settings/Excluded Folder
Add omitting of share key check if the field is empty

@HighPriest Can you try the v6.5.0-7 beta ? Ty

Tested. Works as expected.
Doesn't upload files with the prefix correctly.
Good idea with the switch dependent text field 🥇


feat(font-button): Created a font button for bold, italics, uppercase…

…, lowercase
This change focuses on enhancing the text editing by adding separate button for font selection which when clicked on opens an arc shaped sidebar.
Screenshot of the change

Hey!! @vishanurag Ready for review :)

Hey! @vishanurag Ready for Review :)

Please mention your issue no.

@vishanurag ,my issue number is #134


Couldn't fetch the pid

Hi
I've got false positive : running standalone end up fatal while it's running fine

    TASK [ansible-role-robotframework : Run Selenium server] ***********************
    fatal: [molecule-robotframework-centos7]: FAILED! => {"changed": false, "msg": "Couldnt fetch the pid of the running standalone ! It may have ended abruptly."}

    PLAY RECAP *********************************************************************
    molecule-robotframework-centos7 : ok=8    changed=5    unreachable=0    failed=1

ERROR:
[vagrant@ansible ansible-role-robotframework]$ molecule login
--> Validating schema /vagrant/ansible-role-robotframework/molecule/default/molecule.yml.
Validation completed successfully.
[root@molecule-robotframework-centos7 /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 13:55 ?        00:00:00 bash -c while true; do sleep 10000; done
root         6     1  0 13:55 ?        00:00:00 sleep 10000
root      2682     0  0 13:58 ?        00:00:01 /usr/bin/java -jar //selenium-server-3.13.0.jar
root      2707     0  0 14:18 pts/0    00:00:00 bash
root      2718  2707  0 14:18 pts/0    00:00:00 ps -ef

is it safe to assume that this is no longer applicable?  if it's still a problem (if it is..  seems pretty dang major) feel free to reopen


Adding dependencies.json

Package control can automatically pull in dependencies.
Do you have the time to edit the README to clarify that pyyaml will be installed automatically ?

Okay, I added a small bit.

Great, thanks !


RooTTCN Details

Thanks for sharing your amazing work.
I read in your paper that you are using the rootTCN model to get the absolute poses, I have some questions about that:
1- Actually, I tried to load the pre-trained model from the /ckpts/model_root folder using the Discriminator2D class as follows:
roottcn = networktcn.Discriminator2D() M.Saver(roottcn).restore ('./ckpts/model_root/')
However, I'm getting this error:

Is there a problem in the network or I have loaded it incorrectly. Also, I would like to know the size of the input, by visualising the pth model I see it is a size of (1024,34,3) and according to the paper the input is 2D poses of each person but in fact the Discriminator2D class doesn't need any parameters.. Could you, please, help me with this issue.
2- My second question is about the data format used to train this model to estimate Z/f. Did you use intrinsic parameters and poses given in Human3.6m for that?
Thank you in advance for your time.

Hi, we have updated the codes and hope the updated codes can clarify your questions.


Keyframe reached event

I am creating a GUI application where users can create property keyframe animations by changing CSS styles and clicking a 'Add Frame' button, they can add as many frames as they like.
For example they can drag a element, hit 'Add frame', drag the element again... to create a multiframe animation.
I would like to allow the user to trigger other animations or DOM manipulation (show/hide) when a given frame is reached.
At present it doesn't seem you have any event that can be used with Keyframes, the changeComplete seem to fire after every loop not on every keyframe.
Alternative
I notice on Update you do have a progress, so for my purposes I trigger an action at a given progress - At 50% show some text for eg.
But I think a keyframe reached event would be ideal.
I have created a lil CodePen

Duplicate of #654


Strange Key Error

Versions

Python: 3.5.3
OS: Raspbian Stretch
Kivy: v1.11.0.dev0, git-2edd0c4, 20180714
Kivy installation method: Compiled from source

I am displaying the docked keyboard on a screen, and getting this error log:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/kivy/core/window/window_egl_rpi.py", line 92, in mainloop
    self._mainloop()
  File "/usr/local/lib/python3.5/dist-packages/kivy/core/window/window_egl_rpi.py", line 87, in _mainloop
    EventLoop.idle()
  File "/usr/local/lib/python3.5/dist-packages/kivy/base.py", line 340, in idle
    self.dispatch_input()
  File "/usr/local/lib/python3.5/dist-packages/kivy/base.py", line 325, in dispatch_input
    post_dispatch_input(*pop(0))
  File "/usr/local/lib/python3.5/dist-packages/kivy/base.py", line 231, in post_dispatch_input
    listener.dispatch('on_motion', etype, me)
  File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch (/tmp/pip-siuyf6wr-build/kivy/_event.c:8191)
  File "/usr/local/lib/python3.5/dist-packages/kivy/core/window/__init__.py", line 1335, in on_motion
    self.dispatch('on_touch_down', me)
  File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch (/tmp/pip-siuyf6wr-build/kivy/_event.c:8191)
  File "/usr/local/lib/python3.5/dist-packages/kivy/core/window/__init__.py", line 1351, in on_touch_down
    if w.dispatch('on_touch_down', touch):
  File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch (/tmp/pip-siuyf6wr-build/kivy/_event.c:8191)
  File "/usr/local/lib/python3.5/dist-packages/kivy/uix/vkeyboard.py", line 844, in on_touch_down
    self.process_key_on(touch)
  File "/usr/local/lib/python3.5/dist-packages/kivy/uix/vkeyboard.py", line 745, in process_key_on
    key = self.get_key_at_pos(x, y)
  File "/usr/local/lib/python3.5/dist-packages/kivy/uix/vkeyboard.py", line 715, in get_key_at_pos
    for key in layout_geometry['LINE_HINT_%d' % line_nb]:
KeyError: 'LINE_HINT_5'

email.py

import os
import threading
from kivy.clock import Clock
from kivy.lang import Builder
from kivy.core.window import Window
from screens.base import BaseScreen
from settings import PREVIEW_TIMEOUT
from utils.e_mail import is_valid_email, send_email
from utils.store_selectors import CurEvent
import utils.logger as logger

Builder.load_file(os.path.join(os.path.dirname(__file__), 'kv', 'email.kv'))

class EmailScreen(BaseScreen):
    _allow_focus = True
    """ Internal variable for the auto-focusing feature of the email input box.
    """

    _cnt = PREVIEW_TIMEOUT
    """ Timeout value
    """

    def __init__(self, **kwargs):
        super(EmailScreen, self).__init__(**kwargs)
        self.ids.txt_email.bind(focus=self.on_email_focus)
        self.ids.txt_email.bind(text=self.on_email_text)

    def on_enter(self, *args):
        self._cnt = PREVIEW_TIMEOUT
        Clock.schedule_interval(self.count_down, 1)
        self._allow_focus = True
        self.on_email_focus()
        super(EmailScreen, self).on_enter(*args)

    def on_email_focus(self, *args):
        if not self.ids.txt_email.focus and self._allow_focus:
            self.ids.txt_email.focus = True

    def on_btn_send(self):
        email = self.ids.txt_email.text
        if is_valid_email(email):
            if CurEvent().get().get('Email'):
                threading.Thread(target=send_email, args=(email, )).start()
            else:
                logger.error('Email: XML file does not contain `Email` field - {}'.format(CurEvent().get()))
            self.return_to_home()

    def on_btn_cancel(self):
        self.return_to_home()

    def on_leave(self, *args):
        self._allow_focus = False
        self._cnt = -1
        Window.release_all_keyboards()
        super(EmailScreen, self).on_leave(*args)

    def on_touch_down(self, touch):
        """
        Update timeout value when user touches screen
        :param touch:
        :return:
        """
        super(EmailScreen, self).on_touch_down(touch)
        self._cnt = PREVIEW_TIMEOUT

    def on_email_text(self, *args):
        """
        Update the timeout value when the text changes
        :param args:
        :return:
        """
        self._cnt = PREVIEW_TIMEOUT

    def count_down(self, *args):
        self._cnt -= 1
        if self._cnt == 0:
            self.return_to_home()
            return False        # Cancel this

email.kv

<EmailScreen>:
    name: 'email_screen'
    BoxLayout:
        id: box
        size_hint: .5, .5
        padding: 30
        spacing: 30
        orientation: 'vertical'
        pos_hint: {'center_y': .75, 'center_x': .5}
        Label:
            text: 'Please enter your email'
            color: 0, 0, 0, 1
            font_size: self.size[1] * .7
            pos_hint: {'center_x': .5}
        KioskEmailInput:
            id: txt_email
            multiline: False
            font_size: self.size[1] * .7
        BoxLayout:
            spacing: 100
            size_hint_y: None
            height: 112
            Button:
                background_normal: 'assets/images/cancel-normal.png'
                background_down: 'assets/images/cancel-pressed.png'
                on_release: root.on_btn_cancel()

            Button:
                id: send_email_button
                background_normal: 'assets/images/send-email-normal.png'
                background_down: 'assets/images/send-email-pressed.png'
                on_release: root.on_btn_send()

After testing, i cannot reproduce the issue here. Did you customize the keyboard in anyway?
Double-check you have the latest version, and don't change anything in the VKeyboard or configuration.
If you did, then tell us how to reproduce the issue :)
(Instanciated a TextInput, with in the config.ini: keyboard_mode = dock)


RangeReal values not changed in solver

The public variables of Max and Min in ForceRange on a controller are asigned through a RangeReal. but when you change any of them, they are not updated in the solver underneath unless you assign a new RangeReal(x,y) to the ForceRange.
If you provide a "setter" it should be changed in the native object too.
It would not happen if it was a "struct" but since it is a class, it is working differently.

Thanks for reporting this issue. It didn't cross my mind when I implemented it since I only used the Inspector to change the values.
Since there's no connection between the AGXUnity.RangeReal and the underlying native object, it's not possible to synchronize the changes. I will change it from class to struct to avoid future mistakes.


Overlapping status and error msgs

In the response side of the display Error messages and http status codes are overlaid on top of results. Makes reading sometimes difficult or the data under it.
Expected Behavior

Non opaque layer for status and error messages
Current Behavior

Possible Solution

Separate div for Status and other messages
Steps to Reproduce (for bugs)

Context

Your Environment

Version used: 1.6.5
Environment name and application type (e.g. Chrome 39, chrome extension v1.4.7):
Firefox 59.0b13 (64-bit)
Operating System and version (e.g. Linux, v1.4.7):
Windows 10

Example

@sganz Thanks for reporting this.

No problem, learning GraphQL and your tool is very helpful!!

@sganz Glad to hear that. Let me know of any missing features or improvements. 😄
Fixed this issue. The fix should be available in the next update.


Theme & passed props performance best practice question

After reviewing your docs and strategies for building heavily themed/dynamic components
I thought it may be better performance to have the property functions run once, instead of defining a function for each property. This method below also improve using the 'extend' sc method, since that outputs a single stylesheet that has the original properties, as well as duplicates for any over-ridden styles (potentially making a larger stylesheet than needed).
I realize using nested ThemeProviders could work also, passing a function to override certain values, but this can potentially take away the control you get with using props directly. I guess even if this isn't the best way to customize themes based on props, do you think it's more performant potentially to not invoke a new function on each property as in your docs?
Usage in component:

I'm a regular section `
    background: ${t.color.dark};
    color: ${t.color.lighter};
    > a {
      color: ${t.color.light};

      &:visited {
        color: ${t.color.light};
      }
    }
    input {
      color: ${t.color.dark};
      background: ${t.color.light};
    }
  `,
  light: t => `
    background: ${t.color.lighter}
  `
}

const applyTheme = (mode = 'light', t) => theme[mode](t)

const Section = styled.section`
  ${({theme: t, ...p}) => `
    flex-grow: ${t.section.flexGrow};
    flex-shrink: ${t.section.flexShrink};
    flex-basis: ${t.section.flexBasis};
    padding-top: ${t.section.paddingTop};
    padding-right: ${t.section.paddingRight};
    padding-bottom: ${t.section.paddingBottom};
    padding-left: ${t.section.paddingLeft};
    ${applyTheme(p.mode, t)}
  `}
`

export { Section }

Alternate Dynamic Method
The component type is available within 'this.a.target' when using 'styled.section' etc So you could do the below to read from a theme file based on the target, without declaring each time. Another benefit is that you could add/remove properties to the theme file without having to update the styled component code.
assuming the theme object looks like:
// theme file object

const colors = {
  primary: '#ffdb03',
  secondary: 'hsla(230, 91%, 61%, 1)',
  secondaryFocus: 'hsla(230, 88%, 57%, 1)',
  secondaryActive: 'hsla(230, 84%, 52%, 1)',
  normal: '#31393C',
  dark: '#31393C',
  disabled: '#5d6262',
  disabledBg: '#e0e0e0',
  light: '#ffffff',
  lighter: '#fafafa'
}

{
  section: {
   base: {
      'color': colors.normal,
      'font-weight': 300,
      'font-size': '1em',
      'padding-top': '.5em',
      'padding-bottom': '.5em',
      'padding-left': '.5em',
      'padding-right': '.5em',
      'margin-top': '1.14em',
      'margin-bottom': '1.14em',
      'margin-left': '0em',
      'margin-right': '2.25em',
      'background': 'inherit',
      'border-width': '0.0625em',
      'border-style': 'solid',
      'border-radius': '0px',
      'width': '14em'
    },
    states: {
      focus: {
        'outline-style': 'solid',
        'outline-color': colors.secondary,
        'outline-width': '0.125em',
      },
      disabled: {
        'cursor': 'not-allowed',
        'border-color': colors.disabled,
        'color': colors.disabled,
        'background-color': colors.disabledBg
      }
    }
  },
  input: {
    // etc
  },
  button: {
    // etc
  }
}

You could:
import { each } from 'lodash'
import styled from 'styled-components'

// this.a.target would be 'section'

const makeProps = (obj) => {
  let css = ``
  each(obj, (val, key) => {
    css += `${key}: ${val};`
  })
  return css
}

const applyBaseTheme = (t) => {
  let css = makeProps(t.base)
  if (t.states) {
    each(t.states, (val, key) => {
      css += `&:${key} {${makeProps(val)}}`
    })
  }
  return css
}

const Section = styled.section`
  ${p => `
    ${applyBaseTheme(p.theme[this.a.target])}
  `}
`

export { Section }

Old / Current Method
13 functions have to run, and the conditional syntax gets harder to write as you add different variations (dark/normal/alternate etc)
Syntax Using Existing Extend Method
Lose ability to use a basic prop to switch theme, also the overridden properties will be duplicated, creating a larger stylesheet. Also means you have to import more components where used in other files.

I also tested the performance of caching identical styles. By default, each time you use an instance of a styled component, all of the theme functions are re-ran. The them file doesn't need to be regenerated over and over for identical unique classes, just for the variations.
Not really a typical use case but I was curious if it would help, I rendered 10,000 elements on a page in a loop (lodash.times(1000) and timed the difference using window.performance.now(). You can see that their isn't a huge difference, I'm using a pretty simple dynamic theme, but the cached times are lower and more consistent.
Un-Cached Times - 10k nodes
Call to gen inputs took<PHONE_NUMBER>9999992 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000005 milliseconds.
Call to gen inputs took 155.57 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999996 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999998 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000003 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999998 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999998 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999997 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999995 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000008 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000002 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999998 milliseconds.
Call to gen inputs took<PHONE_NUMBER>000001 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999994 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000003 milliseconds.
Call to gen inputs took 730.065 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999995 milliseconds.
Cached Times - 10k nodes
Call to gen inputs took 132.825 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999996 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000007 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000006 milliseconds.
Call to gen inputs took 154.075 milliseconds.
Call to gen inputs took<PHONE_NUMBER>000001 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999993 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000004 milliseconds.
Call to gen inputs took 125.37 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999997 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000022 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999998 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000012 milliseconds.
Call to gen inputs took<PHONE_NUMBER>0000008 milliseconds.
Call to gen inputs took<PHONE_NUMBER>9999995 milliseconds.
Call to gen inputs took 155.2 milliseconds.


Running on google colab / cifar 10 dataset - long training time

Hello,
I'm trying to run your project on google colab.
I ran your example line after the setup :
CUDA_VISIBLE_DEVICES=0 python mixmatch.py --filters=32 --dataset=cifar10.3@250-5000 --w_match=75 --beta=0.75
I can see on stdout that there are 1024 epochs, each taking about 5 minutes for a speed of about 180 images / sec. That leads to a total experiment time of 85 hours.
Is it normal for the experiment to be that long on a Colab (K80) GPU ?

Not sure, I didn't run on K80. I typically run on a V100 which if I understand correctly is roughly the same speed as a RTX2080 TI. It takes roughly 20 hours for full training on such a GPU.
Note that for the purpose of quick experimentation you don't really have to train that long, even after 1/4th of the training has elapsed the network starts to make good predictions.

Thank you, i'll stop the training earlier then 😊
This page shows that the K80 seems ~4 times slower than V100 in TFLOPS, I guess it's coherent.


[BEAM-13711] [Playground] [Bugfix] Add Cloud Logging API in allow list

[BEAM-13711]

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

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

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

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

@ilya-kozyrev @KhaninArtur

@pavel-avilov please address the comment from @KhaninArtur

@pabloem I resolved Artur's comment


Contributor Guidance - Setting up development environment

Issue:
The procedure given in the guidance is either missing a step or prerequisite actions. I followed the instructions precisely but was presented with an incomplete build.
I have tried referencing node_modules in my path environment variable but it does not resolve the issue.
Environment:
Windows 10 Pro, Node 7.5, NPM 4.1.2,
Output provided:
Deprecation warning: testing deprecation
Arguments:
Error
    at C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\build\umd\test\moment\deprecate.js:346:98
    at Object.<anonymous> (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\build\umd\test\moment\deprecate.js:375:9)
    at Test.run (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:136:18)
    at C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:279:10
    at process (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:1277:24)
    at Timeout._onTimeout (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:383:5)
    at ontimeout (timers.js:365:14)
    at tryOnTimeout (timers.js:237:5)
    at Timer.listOnTimeout (timers.js:207:5)

Errors:

Module: relative time Test: custom rounding
Round down towards the nearest day
    at Object.<anonymous> (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\build\umd\test\moment\relative_time.js:438:16)
    at Test.run (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:136:18)
    at C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:279:10
    at process (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:1277:24)
    at Timeout._onTimeout (C:\Users\tracy\Documents\Aptana Studio 3 Workspace\moment\node_modules\qunitjs\qunit\qunit.js:383:5)
    at ontimeout (timers.js:365:14)
    at tryOnTimeout (timers.js:237:5)
Actual value:
in a month
Expected value:
in 30 days

Global summary:
+--------------------------------------------------------+
¦ Files ¦ Tests ¦ Assertions ¦ Failed ¦ Passed ¦ Runtime ¦
+-------+-------+------------+--------+--------+---------¦
¦ 1     ¦ 2781  ¦ 114093     ¦ 1      ¦ 114092 ¦ 18405   ¦
+--------------------------------------------------------+
Warning: 1 tests failed Used --force, continuing.

Running "exec:typescript-test" (exec) task
>> 'node_modules' is not recognized as an internal or external command,
>> operable program or batch file.
>> Exited with code: 1.
>> Error executing child process: Error: Command failed: node_modules/.bin/tsc --project typing-tests
>> 'node_modules' is not recognized as an internal or external command,
>> operable program or batch file.
Warning: Task "exec:typescript-test" failed. Used --force, continuing.

Yeah, it looks to me like there's a section of the build file that assumes Unix paths:
            'typescript-test': {
                command: 'node_modules/.bin/tsc --project typing-tests'
           }

I haven't developed on Windows in a long time, so I'm not sure what the best way to fix that is. @mj1856 any ideas there?
In the meantime, here's a workaround:

Open Gruntfile.js
Find this line: grunt.registerTask('test', ['test:node', 'test:typescript']);
Remove the second item in the array (meaning, don't run the Typescript tests as part of the test suite)

In addition to that, make sure you're on the latest version of the develop branch. The one test failure you have is almost certainly the one fixed here, which suggests that you're not quite up to date.

Thanks for the advice. I have found an alternative workaround that does not require a change to Gruntfile.js. Instead of running the default grunt command I use:
grunt lint test:node

Yeah, that makes sense.
I'm going to reopen this issue though. We should fix this.

This might be simple.
@TracyGJG , could you check if this works? Change the offending line to:
                command: './node_modules/.bin/tsc --project typing-tests'

and run grunt.

Command Prompt

Good call. It works fine for me now.
Running "exec:typescript-test" (exec) task

><EMAIL_ADDRESS>typescript-test C:\Users\xxxx\moment
> tsc --project typing-tests

Done, without errors.

closing, #3840


Add content_type to context to match template used in dci-project-stories

This PR goes together with https://github.com/comments-ink/dci-project-stories/pull/7
The js modal referred to here seems to be using a template that also needs the content_type in the context.

Looks good!


Can not add accessory to home.

I followed the tutorials to compile and flash one of the examples. The only thing I changed in code was wifi.h and this line .setupId="1QJ9" in the server config.
Then I generated a qr code with /usr/local/opt/python/libexec/bin/python  tools/gen_qrcode 5 123-12-151 1QJ9 qrcode.png
Meanwhile I got this output from the esp:
Opening /dev/tty.usbserial-1410 at 115200bps...
pp_task_hdl : 3ffefdd8, prio:14, stack:512
pm_task_hdl : 3ffef840, prio:1, stack:176
frc2_timer_task_hdl:0x3fff3e68, prio:12, stack:200

ESP-Open-SDK ver: 0.0.1 compiled @ Dec 13 2019 21:53:15
phy ver: 273, pp ver: 8.3

mode : sta(84:f3:eb:dc:dd:34)
add if0
>>> HomeKit: Starting server
>>> HomeKit: Using existing accessory ID: 61:06:A1:2C:86:CD
>>> HomeKit: Configuring mDNS
mDNS announcement: Name=Sample LED-6106md=MyLEDpv=1.0id=61:06:A1:2C:86:CDc#=1s#=1ff=0sf=1ci=5
                                                                                sh=M3tP5w== Port=5556 TTL=4500
scandone
add 0
aid 1
cnt

connected with kemkriszt, channel 5
dhcp client start...
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>

But when I scan the QR, nothing happens. My iPhone says that the accessory can not be found and I can see no logs from esp about any connection attempt.
I've tried multiple iOS devices as well as restarting my router/devices.
Any idea?

Ok, I’ve just realized that there is an other issue sayin the same thing so I’m gonna close mine.


add: ztest95

Description
Added profile for ztest95
Related Issues
#292
Changes Proposed

Checklist

[/ ] I have read and followed the Contribution Guidelines.
[ /] All new and existing tests passed.
[ /] I have updated the documentation to reflect the changes I've made.
[ /] My code follows the code style of this project.
[/ ] The title of my pull request is a short description of the requested changes.

Screenshots
Note to reviewers

@ztest95 Thank you so much for your contribution! Your efforts are greatly appreciated and will go a long way in improving our project. Please feel free to share it with others and Star the repo to help us grow even further!


Is it clean or clear command?

Hi,
Thanks for putting up this book for a novice like me. Really appreciate the efforts. I was reading though 03-Command-Line-Basics.Rmd and found that 'clean' is mentioned as command to clear the screen. And down the line after a para it is mentioned that 'clear' is for same purpose.
Are both used to clear the screen or one of them?
Thanks!

Hi @narenatgit, it's definitely clear! I'll fix that typo right now. I'm glad you're finding it useful, if you have any other questions or comments let me know.


python311Packages.hahomematic: 2024.1.10 -> 2024.2.0

Diff: https://github.com/danielperna84/hahomematic/compare/refs/tags/2024.1.10...2024.2.0
Changelog: https://github.com/danielperna84/hahomematic/releases/tag/2024.2.0
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

2 packages built:

python311Packages.hahomematic
python311Packages.hahomematic.dist


Improve agent sts pvc tests

Ref #171
@IceBear2k
I was unable to replicate your issue.
helm template charts/woodpecker/charts/agent/ --set persistence.enabled=true renders a valie statefulset for me and doesn't include volumeMounts and volumeClaimTemplates as shown in your screenshot. Can you verify this on your own?
Are you setting additional options?
# Source: agent/templates/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: release-name-agent
  labels:
    helm.sh/chart: agent-0.3.0
    app.kubernetes.io/name: agent
    app.kubernetes.io/instance: release-name
    app.kubernetes.io/version: "2.4.1"
    app.kubernetes.io/managed-by: Helm
spec:
  serviceName: release-name-agent
  replicas: 2
  selector:
    matchLabels:
      app.kubernetes.io/name: agent
      app.kubernetes.io/instance: release-name
  template:
    metadata:
      labels:
        app.kubernetes.io/name: agent
        app.kubernetes.io/instance: release-name
    spec:
      serviceAccountName: release-name-agent
      securityContext:
        {}
      initContainers:
      containers:
        - name: agent
          securityContext:
            {}
          image: "docker.io/woodpeckerci/woodpecker-agent:v2.4.1"
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 3000
              protocol: TCP
          resources:
            {}
          volumeMounts:
            - name: agent-config
              mountPath: /etc/woodpecker
          env:
            - name: WOODPECKER_BACKEND
              value: "kubernetes"
            - name: WOODPECKER_BACKEND_K8S_NAMESPACE
              value: "woodpecker"
            - name: WOODPECKER_BACKEND_K8S_POD_ANNOTATIONS
              value: ""
            - name: WOODPECKER_BACKEND_K8S_POD_LABELS
              value: ""
            - name: WOODPECKER_BACKEND_K8S_STORAGE_CLASS
              value: ""
            - name: WOODPECKER_BACKEND_K8S_STORAGE_RWX
              value: "true"
            - name: WOODPECKER_BACKEND_K8S_VOLUME_SIZE
              value: "10G"
            - name: WOODPECKER_CONNECT_RETRY_COUNT
              value: "1"
            - name: WOODPECKER_SERVER
              value: "woodpecker-server:9000"
          envFrom:
            - secretRef:
                name: woodpecker-secret
  volumeClaimTemplates:
    - metadata:
        name: agent-config
        namespace:
        annotations:
      spec:
        accessModes:
          - "ReadWriteOnce"
        resources:
          requests:
            storage: 1Gi

In any case, I've also added additional tests in this PR which should verify the behavior described above. The change in statefuleset.yaml is only to prevent rendering an empty volumes: block, but this is unrelated to the claims in #171. The last test in this PR verifies that the mentioned components should not exist in the STS when setting persistence.enabled=false.
From what I can see you are setting woodpecker.agent.persistence.enabled which won't have an effect as it should be agent.persistence.enabled. Maybe that's the issue?

I'm setting agent.persistence.enabled to false - true is the default. So, the test should be: helm template charts/woodpecker/charts/agent/ --set persistence.enabled=false - that results in what I've mentioned in #171
Sorry for the confusion with woodpecker.agent.persistence.enabled vs agent.persistence.enabled - that's because I'm using an umbrella Helm Chart that includes this Chart as a Sub-Chart woodpecker.

So, the test should be: helm template charts/woodpecker/charts/agent/ --set persistence.enabled=false

Sorry, my comment had a typo. It should have been persistence.enabled=false. That is in fact what I checked for and the output above should reflect that.
The tests now cover both cases.

While that is valid YAML, have a look at the very last two lines. They make no sense here and will render the Chart invalid.

Ah sorry 🤦 Now I see it. Thanks for your persistence, I agree. I removed them now.

@xoxys @anbraten review appreciated :)

I've made a slight to the logic now again:

If persistence=false and no extraVolumeMount is given, an emptyDir is mounted (following the initial idea)
Otherwise only the PVC is mounted

Also adapted the tests.

I'm still a bit confused. What's the purpose of /data? Is the agent writing anything to this path?

I have the habit to add an emptyDir scratch volume to all pods by default. But no, in this case, the agent is not writing any data. One can persist the config file to avoid new registrations all the time but this must be done via a PVC.
I'll remove it.


Fix getInlineStyleTags/Elements docs.

Summary
These docs disagree with their implementation. The docs mention link tags but the implementation uses style tags. The implementation seems obviously correct so I assume it's the docs that need fixing.
Here is getInlineStyleTags using style tags as expected:
https://github.com/gregberge/loadable-components/blob/629c80e42eea605a32dafd7b52faf3140e1aab28/packages/server/src/ChunkExtractor.test.js#L463-L479
Here is getInlineStyleElements using style tags as expected:
https://github.com/gregberge/loadable-components/blob/629c80e42eea605a32dafd7b52faf3140e1aab28/packages/server/src/ChunkExtractor.test.js#L622-L650
Test plan
N/A

👍 yep, there is no such thing as inline link tag


New steam update broke the skin

Library tab is broken
(but store and other tabs are fine)

NVM used SFP again and it's fine now


⚠ Bofrost.fr has degraded performance

In 7ddb960, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 979 ms

Resolved: Bofrost.fr performance has improved in 841ba81 after 312 days, 5 hours, 24 minutes.


Error: Could not find or load main class sv2chisel.Main

I can't execute binary utility correctly.
I published localy the project :
$ git clone https://github.com/ovh/sv2chisel.git
$ cd sv2chisel
$ sbt
sbt:sv2chisel> publishLocal
sbt:sv2chisel> helpers/publishLocal

I found the binary under directory named utils/bin :
$ cd utils/bin/
$ ./sv2chisel -help
Error: Could not find or load main class sv2chisel.Main
Caused by: java.lang.ClassNotFoundException: sv2chisel.Main

Did I forget something in installation ?

Hi @Martoni
There are many different ways to get sv2chisel working.
The easiest is to download standalone binaries from releases : https://github.com/ovh/sv2chisel/releases/tag/v0.5.0
As you've already cloned the repositories, the second easiest consists in assembling the code base into a fat jar with sbt assembly (or simply assembly within sbt) command. Then ./utils/bin/sv2chisel should work as expected.
Another option is to play within the sbt command prompt with runMain sv2chisel.Main -help command as proposed here: https://github.com/ovh/sv2chisel#option-a-run-the-generic-application
In all cases this might be useful : https://github.com/ovh/sv2chisel#1-translation
Further details about translation options (default are usually fine): https://github.com/ovh/sv2chisel/blob/master/FEATURES_LIMITATIONS.md#configuration--translation-options
I hope this helps, let me know if you need anything :)

Works \o/
Thanks


tm.dbcompact: Error: Could not load corrupted row

Appveyor/windows tests have been failing since #1292 was merged.
The failing line is: https://github.com/mapbox/mapbox-studio/blob/c5c21df2b3442166bb7f82a68a60c86bac5f576e/test/tm.test.js#L81
Resulting in:
tm.dbcompact: Error: Could not load corrupted row: {"key":"test","val":3},

per https://github.com/mapbox/mapbox-studio/pull/1292#issuecomment-112691371, @BergWerkGIS is going to take a look at this.

no seeing this error anymore.


Switch to Vite for building

Unnecessary and rollup seems like a better fit because "vite is a server" and made for different tasks.

This makes no sense


specs-go/v1/descriptor: Drop 'omitempty' from mediaType

This is a required property, so omitempty serves no purpose.

LGTM

omitempty has no bearing on whether the field is required or not. They are completely unrelated. It just means that if there is an empty string, you don't emit the field. Either way, the descriptor is still invalid.
I am in favor of leaving omitempty in place for all fields.

On Fri, Feb 03, 2017 at 02:28:12PM -0800, Stephen Day wrote:

It just means that if there is an empty string, you don't emit the
field. Either way, the descriptor is still invalid.

Agreed.

I am in favor of leaving omitempty in place for all fields.

Your “either way, the descriptor is still invalid” argument will break
down if there is a required property where Go's zero-value is legal.
For example, Descriptor.Size may be zero (and it's not omitempty 1).
I don't see a point to having ‘omitempty’ where you never intend it to
be used, but shrug, it's your project.

@wking Look, I am just trying to reduce churn in areas that don't need changes. How bout someone tries to tackle action problems?
https://github.com/opencontainers/image-spec/issues/467
https://github.com/opencontainers/image-spec/issues/415
This doesn't even address a real problem. Is there a bug? Did this break something? No, it is just a waste of time.

For example, Descriptor.Size may be zero (and it's not omitempty [1]).

What exactly is the point of a zero-sized target object? In fact, there can only be one valid item with zero-sized target and that Digest is sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. What, then, is the media type of said thing?
Let's get focused on a 1.0 and stop faffing about.

On Fri, Feb 03, 2017 at 03:44:23PM -0800, Stephen Day wrote:

This doesn't even address a real problem. Is there a bug? Did this
break something? No, it is just a waste of time.

This is minor polishing to reduce confusion like 1 and save
maintainers time in the long run (by not having to field PRs like
#547).

What exactly is the point of a zero-sized target object?

I dunno, but nobody feels strongly enough about it to make it illegal
(and I think not jumping through hoops to make things illegal is a
good thing).

Let's get focused on a 1.0 and stop faffing about.

I didn't expect this removal to be so contentious ;).  But I'll PR
some language for #467 to rebalance my karma (although it's not
milestoned 1.0.0, perhaps an oversight?).

This is minor polishing to reduce confusion like [1] and save
maintainers time in the long run (by not having to field PRs like
#547).

How is this the cause of #547? The problem with #547 exists between a keyboard and a chair.

I didn't expect this removal to be so contentious ;).

It is just unnecessary.

On Fri, Feb 03, 2017 at 04:43:04PM -0800, Stephen Day wrote:

This is minor polishing to reduce confusion like 1 and save
maintainers time in the long run (by not having to field PRs like
#547).

How is this the cause of #547? The problem with #547 exists between
a keyboard and a chair.

Excepting repository curruption and similar, all problems are
between a keyboard and a chair ;).

I didn't expect this removal to be so contentious ;).

It is just unnecessary.

This same change landed without contention in #410 (for the
since-removed Versioned.MediaType, which was also required at that
point 1).  There was backing discussion around that change in 2.
Looking back at the history of Descriptor.MediaType, we have it
landing without omitempty in #172, and the omitempty getting injected
without discussion in #411.  I'm not sure what @vbatts' motivation was
for adding it; maybe he can weigh in here?  And grepping master for
‘omitempty’ shows Descriptor.MediaType as the only omitempty
property that is REQUIRED in the associated Markdown (all of the other
omitempty properties are explicitly OPTIONAL).
  No.
But I don't think I had reason to expect this PR would have taken any
more maintainer time than a glance at the diff, an LGTM in a comment,
and a tap on the merge button.

@wking Unfortunately, had I seen #411, I would have rejected it.
omitempty ensures that we have clean output that reduces errors in consumers. omitempty has nothing to do with REQUIRED vs OPTIONAL. Stop making that false equivalence.
I am closing this and I hope someone will take the time to revert #411 so I don't have to.


Do we need NotesTableViewcell custom class? only iboutlet property declared in it

Yes, it's needed. There's a segue from the cell to Notes View Controller.


php artisan publish vendor:publish --provider="Maengkom/Box/BoxAPIServiceProvider"

When typing this command...
php artisan publish vendor:publish --provider="Maengkom/Box/BoxAPIServiceProvider"
I get an exception error. I assume you mean...
php artisan vendor:publish --provider="Maengkom/Box/BoxAPIServiceProvider"
But that doesn't work either. I get 'Nothing to publish for tag [].'

You are correct, I mistype the artisan command. I will check and back soon. Thanks for info.

Hello, you may use this command
php artisan vendor:publish --tag="boxapi"


NewDevice succeeds on non camera devices

If I provide NewDevice() with an IPaddr and port that reference a web server, it will return success as long as the website hosted on that server does not return an http error. The issue is in "func (dev *Device) getSupportedServices(resp *http.Response)" This function does not check that the response is a valid SOAP response.

I have been able to work around the issue stated above. Here are the problems I worked around:

onvif depends on "github.com/beevik/etree v1.3.0" but the go.mod file does not state this requirement. I updated my project to "github.com/beevik/etree v1.3.0" and now websites return an error to NewDevice()
if a site returns valid xml, NewDevice() returns success with a single service  returned by device.GetServices(). I have had to add code to my application to catch this case.

It would be nice if you could fix the above issues even though I have worked around them.


Ubiquity support for ppc64le

Hi,
This issue is to track ppc64le support for ubiquity. I have been able to build ubiquity binary for ppc64le and was able to run unit tests as well. Here is the output of running unit tests:
• SUCCESS! 3.383086ms PASS
coverage: 17.0% of statements
PASS
testing: warning: no tests to run
coverage: 0.0% of statements
Found no test suites, did you forget to run "ginkgo bootstrap"?
Ginkgo ran 9 suites in 1m16.85447563s
Test Suite Passed
-> Finished running unit tests  (exit code 0)

I was able to successfully build Docker image with few changes, for which the PR would be attached in this issue.
Docker image build was successful, the changes are generic, and the testing has been done on x86_64, thanks to @yadaven! who did the testing, for which the logs are here:
[root@vm1 ubiquity]# docker run -it --name=Y2 -e PORT=9999 -e LOG_PATH=/tmp/ -e DEFAULT_BACKEND=spectrum-scale -e DEFAULT_FILESYSTEM_NAME=gpfs_device -e SSC_NFS_SERVER_ADDRESS=<IP_ADDRESS> -e FORCE_DELETE=true -e SSC_REST_ENDPOINT=https://<IP_ADDRESS>:443 -e SSC_REST_USER=admin -e SSC_REST_PASSWORD=admin001 -e CONFIG_PATH=/gpfs/gpfs_device -e SSC_REST_HOSTNAME=ubiquity-acceptance-ss-server -e UBIQUITY_PLUGIN_SSL_MODE=require -p 9999:9999 -v /gpfs/gpfs_device:/gpfs/gpfs_device/ ubiquity1:latest

Creating SSL directory /var/lib/ubiquity/ssl/private and setting ownership to user postgres ...

Creating default SSL key and certificate for ubiquity

Generating a 4096 bit RSA private key

...........................................++

.....................................................................................................................................++

writing new private key to 'root.key'

-----

Creating default SSL key /var/lib/ubiquity/ssl/private/ubiquity.key

Generating a 4096 bit RSA private key

............................................................................................................................++

.......................................................++

writing new private key to '/var/lib/ubiquity/ssl/private/ubiquity.key'

-----

Creating default SSL certificate /var/lib/ubiquity/ssl/private/ubiquity.key

Signature ok

<EMAIL_ADDRESS>
Getting CA Private Key

Creating default SSL key and certificate for ubiquity - done!

Calling ubiquity...

Starting Ubiquity Storage API server with config resources.UbiquityServerConfig{Port:9999, LogPath:"/tmp/", ConfigPath:"/gpfs/gpfs_device", SpectrumScaleConfig:resources.SpectrumScaleConfig{DefaultFilesystemName:"gpfs_device", NfsServerAddr:"<IP_ADDRESS>", SshConfig:resources.SshConfig{User:"", Host:"", Port:""}, RestConfig:resources.RestConfig{Endpoint:"https://<IP_ADDRESS>:443", User:"admin", Password:"admin001", Hostname:"ubiquity-acceptance-ss-server"}, ForceDelete:true}, ScbeConfig:resources.ScbeConfig{ConfigPath:"", ConnectionInfo:resources.ConnectionInfo{CredentialInfo:resources.CredentialInfo{UserName:"", Password:"****", Group:""}, Port:8440, ManagementIP:""}, DefaultService:"", DefaultVolumeSize:"", UbiquityInstanceName:"", DefaultFilesystemType:""}, BrokerConfig:resources.BrokerConfig{ConfigPath:"", Port:0}, DefaultBackend:"spectrum-scale", LogLevel:""}

2018-01-25 09:52:32.536 INFO 1 main.go:70 main::main Checking for heartbeat.... []

2018-01-25 09:52:32.579 INFO 1 main.go:77 main::main Heartbeat acquired []

2018-01-25 09:52:32.579 INFO 1 main.go:80 main::main Obtaining handle to DB []

ubiquity: 2018/01/25 09:52:32 spectrumscale.go:83: spectrumLocalClient: init start

ubiquity: 2018/01/25 09:52:32 connectors.go:58: Initializing SpectrumScale REST connector

ubiquity: 2018/01/25 09:52:32 datamodel.go:90: SpectrumDataModel: Create Volumes Table start

ubiquity: 2018/01/25 09:52:32 datamodel.go:96: SpectrumDataModel: Create Volumes Table end

ubiquity: 2018/01/25 09:52:32 spectrumscale.go:95: spectrumLocalClient: init end

ubiquity: 2018/01/25 09:52:32 spectrumscale_nfs.go:35: spectrumNfsLocalClient: init start

ubiquity: 2018/01/25 09:52:32 spectrumscale.go:83: spectrumLocalClient: init start

ubiquity: 2018/01/25 09:52:32 connectors.go:58: Initializing SpectrumScale REST connector

ubiquity: 2018/01/25 09:52:32 datamodel.go:90: SpectrumDataModel: Create Volumes Table start

ubiquity: 2018/01/25 09:52:32 datamodel.go:96: SpectrumDataModel: Create Volumes Table end

ubiquity: 2018/01/25 09:52:32 spectrumscale.go:95: spectrumLocalClient: init end

ubiquity: 2018/01/25 09:52:32 spectrumscale_nfs.go:54: spectrumNfsLocalClient: init end

2018-01-25 09:52:32.609 ERROR 1 simple_rest_client.go:225 scbe::initTransport failed [[{error=stat /var/lib/ubiquity/ssl/public/scbe-trusted-ca.crt: no such file or directory}]]

2018-01-25 09:52:32.609 ERROR 1 simple_rest_client.go:76 scbe::NewSimpleRestClient client.initTransport failed [[{error=stat /var/lib/ubiquity/ssl/public/scbe-trusted-ca.crt: no such file or directory}]]

2018-01-25 09:52:32.609 ERROR 1 scbe_rest_client.go:80 scbe::newScbeRestClient NewSimpleRestClient failed [[{error=stat /var/lib/ubiquity/ssl/public/scbe-trusted-ca.crt: no such file or directory}]]

2018-01-25 09:52:32.609 ERROR 1 scbe.go:61 scbe::NewScbeLocalClient NewScbeRestClient failed [[{error=stat /var/lib/ubiquity/ssl/public/scbe-trusted-ca.crt: no such file or directory}]]

ubiquity: 2018/01/25 09:52:32 clients.go:47: Not enough params to initialize 'scbe' client

Starting Storage API server on port 9999 ....

CTL-C to exit/stop Storage API server service

2018-01-25 09:53:52.626 INFO 1 storage_api_handler.go:51 web_server::func1 Activating just one backend [[{Backend=spectrum-scale}]]

ubiquity: 2018/01/25 09:53:52 spectrumscale.go:99: spectrumLocalClient: Activate start

ubiquity: 2018/01/25 09:53:52 rest_v2.go:170: spectrumRestConnector: IsFilesystemMounted

ubiquity: 2018/01/25 09:53:52 rest_v2.go:177: Get Nodes URL %s https://<IP_ADDRESS>:443/scalemgmt/v2/nodes

ubiquity: 2018/01/25 09:53:52 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:53:52 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:53:52 rest_v2.go:187: Got hostname from config ubiquity-acceptance-ss-server

ubiquity: 2018/01/25 09:53:52 rest_v2.go:192: spectrum rest Client: node name: ubiquity-acceptance-ss-server

ubiquity: 2018/01/25 09:53:52 rest_v2.go:204: spectrumRestConnector: IsFilesystemMounted end

This method is not yet implementedubiquity: 2018/01/25 09:53:52 rest_v2.go:152: spectrumRestConnector: GetClusterId

ubiquity: 2018/01/25 09:53:52 rest_v2.go:158: Get Cluster URL : %s https://<IP_ADDRESS>:443/scalemgmt/v2/cluster

ubiquity: 2018/01/25 09:53:52 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:53:52 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:53:52 rest_v2.go:166: spectrumRestConnector: GetClusterId end

ubiquity: 2018/01/25 09:53:52 spectrumscale.go:145: spectrumLocalClient: Activate end

2018-01-25 09:53:52.9 INFO 1 storage_api_handler.go:51 web_server::func1 Activating just one backend [[{Backend=spectrum-scale-nfs}]]

ubiquity: 2018/01/25 09:53:52 spectrumscale_nfs.go:58: spectrumNfsLocalClient: Activate-start

ubiquity: 2018/01/25 09:53:52 spectrumscale.go:99: spectrumLocalClient: Activate start

ubiquity: 2018/01/25 09:53:52 rest_v2.go:170: spectrumRestConnector: IsFilesystemMounted

ubiquity: 2018/01/25 09:53:52 rest_v2.go:177: Get Nodes URL %s https://<IP_ADDRESS>:443/scalemgmt/v2/nodes

ubiquity: 2018/01/25 09:53:52 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:53:52 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:53:52 rest_v2.go:187: Got hostname from config ubiquity-acceptance-ss-server

ubiquity: 2018/01/25 09:53:52 rest_v2.go:192: spectrum rest Client: node name: ubiquity-acceptance-ss-server

ubiquity: 2018/01/25 09:53:52 rest_v2.go:204: spectrumRestConnector: IsFilesystemMounted end

This method is not yet implementedubiquity: 2018/01/25 09:53:52 rest_v2.go:152: spectrumRestConnector: GetClusterId

ubiquity: 2018/01/25 09:53:52 rest_v2.go:158: Get Cluster URL : %s https://<IP_ADDRESS>:443/scalemgmt/v2/cluster

ubiquity: 2018/01/25 09:53:53 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:53:53 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:53:53 rest_v2.go:166: spectrumRestConnector: GetClusterId end

ubiquity: 2018/01/25 09:53:53 spectrumscale.go:145: spectrumLocalClient: Activate end

ubiquity: 2018/01/25 09:53:53 spectrumscale_nfs.go:61: spectrumNfsLocalClient: Activate-end

2018-01-25 09:55:05.782 INFO 1 migrate.go:44 database::doMigrations migrating [[{migration={{0 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC <nil>}   }}]]

2018-01-25 09:55:05.783 INFO 1 migrate.go:44 database::doMigrations migrating [[{migration=&{0 {{0 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC <nil>}   } 0  }}]]

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:149: spectrumLocalClient: create start

ubiquity: 2018/01/25 09:55:05 datamodel.go:167: SpectrumDataModel: GetVolume start

ubiquity: 2018/01/25 09:55:05 datamodel.go:173: SpectrumDataModel: GetVolume end

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:163: Opts for create: map[string]interface {}{"filesystem":"gpfs_device", "gid":"1000", "nfsClientConfig":"*(Access_Type=RW,Squash=no_root_squash,SecType=sys,Protocols=3:4)", "quota":"1024M", "size":"1", "type":"fileset", "uid":"1000", "backend":"spectrum-scale"}

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:169: Trying to determine type for request

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:714: determineTypeFromRequest start

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:729: determineTypeFromRequest end

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:175: Volume type requested: fileset

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:733: validateAndParseParams start

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:714: determineTypeFromRequest start

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:729: determineTypeFromRequest end

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:795: validateAndParseParams end

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:182: Params for create: %!s(bool=false),gpfs_device,,

ubiquity: 2018/01/25 09:55:05 spectrumscale.go:486: spectrumLocalClient: createFilesetQuotaVolume start

ubiquity: 2018/01/25 09:55:05 rest_v2.go:260: spectrumRestConnector: CreateFileset

ubiquity: 2018/01/25 09:55:05 rest_v2.go:279: filesetreq {pvc-d1b73d32-01b5-11e8-8e5b-080027dd486f    root    fileset for container volume          0 0 0 0 0 0  0 }

ubiquity: 2018/01/25 09:55:05 rest_v2.go:283: Create Fileset URL:  https://<IP_ADDRESS>:443/scalemgmt/v2/filesystems/gpfs_device/filesets

ubiquity: 2018/01/25 09:55:06 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:55:06 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:55:06 rest_v2.go:66: spectrumRestConnector: isRequestAccepted

ubiquity: 2018/01/25 09:55:06 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:55:06 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:55:06 rest_v2.go:76: spectrumRestConnector: isRequestAccepted end

ubiquity: 2018/01/25 09:55:06 rest_v2.go:80: spectrumRestConnector: waitForJobCompletion

ubiquity: 2018/01/25 09:55:06 rest_v2.go:55: spectrumRestConnector: checkAsynchronousJob

ubiquity: 2018/01/25 09:55:06 rest_v2.go:60: spectrumRestConnector: checkAsynchronousJob end

ubiquity: 2018/01/25 09:55:06 rest_v2.go:85: Job URL:  https://<IP_ADDRESS>:443/scalemgmt/v2/jobs?filter=jobId=3000000000001&fields=:all:

ubiquity: 2018/01/25 09:55:06 rest_v2.go:96: spectrumRestConnector: AsyncJobCompletion

ubiquity: 2018/01/25 09:55:06 rest_v2.go:101: jobUrl  https://<IP_ADDRESS>:443/scalemgmt/v2/jobs?filter=jobId=3000000000001&fields=:all:

ubiquity: 2018/01/25 09:55:07 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:55:07 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:55:09 rest_v2.go:101: jobUrl  https://<IP_ADDRESS>:443/scalemgmt/v2/jobs?filter=jobId=3000000000001&fields=:all:

ubiquity: 2018/01/25 09:55:10 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:55:10 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:55:12 rest_v2.go:101: jobUrl  https://<IP_ADDRESS>:443/scalemgmt/v2/jobs?filter=jobId=3000000000001&fields=:all:

ubiquity: 2018/01/25 09:55:12 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:55:12 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:55:14 rest_v2.go:101: jobUrl  https://<IP_ADDRESS>:443/scalemgmt/v2/jobs?filter=jobId=3000000000001&fields=:all:

ubiquity: 2018/01/25 09:55:14 rest_v2.go:43: spectrumRestConnector: isStatusOK

ubiquity: 2018/01/25 09:55:14 rest_v2.go:49: spectrumRestConnector: isStatusOK end

ubiquity: 2018/01/25 09:55:14 rest_v2.go:117: Job https://<IP_ADDRESS>:443/scalemgmt/v2/jobs?filter=jobId=3000000000001&fields=:all: Completed Successfully: {[mmcrfileset 'gpfs_device' 'pvc-d1b73d32-01b5-11e8-8e5b-080027dd486f' -t 'fileset for container volume' --inode-space 'root' --allow-permission-change 'chmodAndSetAcl'  mmlinkfileset 'gpfs_device' 'pvc-d1b73d32-01b5-11e8-8e5b-080027dd486f' -J '/gpfs/gpfs_device/pvc-d1b73d32-01b5-11e8-8e5b-080027dd486f' ] [] 0 [] [EFSSG0070I File set pvc-d1b73d32-01b5-11e8-8e5b-080027dd486f created successfully.
Here are the results of deployment:
root@ubuntu:~/go/src/github.com/IBM/ubiquity-k8s/scripts/installer-for-ibm-storage-enabler-for-containers# ./ubiquity_cli.sh -a status -n ubiquity
Working in namespace [ubiquity].
kubectl get storageclass | egrep "ubiquity|^NAME"
---------------------------------------------------------------------
NAME      PROVISIONER
gold      ubiquity/flex

kubectl get --namespace ubiquity secret/ubiquity-db-credentials secret/scbe-credentials cm/k8s-config cm/ubiquity-configmap pv/ibm-ubiquity-db pvc/ibm-ubiquity-db svc/ubiquity svc/ubiquity-db daemonset/ubiquity-k8s-flex deploy/ubiquity deploy/ubiquity-db deploy/ubiquity-k8s-provisioner
---------------------------------------------------------------------
NAME                              TYPE      DATA      AGE
secrets/ubiquity-db-credentials   Opaque    3         15h
secrets/scbe-credentials          Opaque    2         15h

NAME                    DATA      AGE
cm/k8s-config           1         15h
cm/ubiquity-configmap   10        15h

NAME                 CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                      STORAGECLASS   REASON    AGE
pv/ibm-ubiquity-db   20Gi       RWO            Delete           Bound     ubiquity/ibm-ubiquity-db   gold                     15h

NAME                  STATUS    VOLUME            CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc/ibm-ubiquity-db   Bound     ibm-ubiquity-db   20Gi       RWO            gold           15h

NAME              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
svc/ubiquity      ClusterIP   <IP_ADDRESS>    <none>        9999/TCP   15h
svc/ubiquity-db   ClusterIP   <IP_ADDRESS>    <none>        5432/TCP   15h

NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ds/ubiquity-k8s-flex   2         2         2         2            2           <none>          15h

NAME                              DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/ubiquity                   1         1         1            1           15h
deploy/ubiquity-db                1         1         1            1           15h
deploy/ubiquity-k8s-provisioner   1         1         1            1           15h

kubectl get --namespace ubiquity pod | egrep "^ubiquity|^NAME"
---------------------------------------------------------------------
NAME                                        READY     STATUS    RESTARTS   AGE
ubiquity-6cd557959-wsrxj                    1/1       Running   0          15h
ubiquity-db-6c8757d854-ggjt8                1/1       Running   0          15h
ubiquity-k8s-flex-gx5b6                     1/1       Running   0          15h
ubiquity-k8s-flex-ph2bf                     1/1       Running   0          15h
ubiquity-k8s-provisioner-5f9b77cf8f-9wssp   1/1       Running   0          15h
root@ubuntu:~/go/src/github.com/IBM/ubiquity-k8s/scripts/installer-for-ibm-storage-enabler-for-containers#

Here is the result of sanity test:
root@ubuntu:~/go/src/github.com/IBM/ubiquity-k8s/scripts/installer-for-ibm-storage-enabler-for-containers# ./ubiquity_cli.sh -a sanity -n ubiquity
Working in namespace [ubiquity].
--------------------------------------------------------------
Sanity description:
    1. Create sanity-pvc, sanity-pod and wait for creation.
    2. Delete the sanity-pod, sanity-pvc and wait for deletion.
    Note: Uses yml files from directory ./yamls/sanity_yamls
--------------------------------------------------------------

persistentvolumeclaim "sanity-pvc" created
pvc [sanity-pvc] status is [Pending] while expected status is [Bound]. sleeping [3 sec] before retrying to check [0/10]
pvc [sanity-pvc] status is [Pending] while expected status is [Bound]. sleeping [3 sec] before retrying to check [1/10]
pvc [sanity-pvc] status [Bound] as expected (after 2/10 tries)
pod "sanity-pod" created
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [0/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [1/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [2/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [3/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [4/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [5/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [6/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [7/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [8/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [9/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [10/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [11/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [12/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [13/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [14/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [15/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [16/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [17/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [18/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [19/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [20/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [21/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [22/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [23/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [24/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [25/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [26/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [27/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [28/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [29/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [30/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [31/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [32/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [33/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [34/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [35/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [36/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [37/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [38/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [39/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [40/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [41/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [42/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [43/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [44/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [45/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [46/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [47/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [48/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [49/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [50/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [51/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [52/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [53/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [54/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [55/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [56/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [57/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [58/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [59/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [60/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [61/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [62/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [63/100]
pod [sanity-pod] status is [Pending] while expected status is [Running]. sleeping [3 sec] before retrying to check [64/100]
pod [sanity-pod] status [Running] as expected (after 65/100 tries)
pod "sanity-pod" deleted
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          3m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [0/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          3m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [1/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          3m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [2/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          3m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [3/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          3m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [4/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [5/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [6/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [7/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [8/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [9/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   1/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [10/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [11/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [12/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [13/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [14/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [15/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [16/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [17/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [18/100]
NAME         READY     STATUS        RESTARTS   AGE
sanity-pod   0/1       Terminating   0          4m
pod [sanity-pod] still exists. sleeping [3 sec] before retrying to check [19/100]
pod [sanity-pod] was deleted (after 20/100 tries)
persistentvolumeclaim "sanity-pvc" deleted
pvc [sanity-pvc] was deleted (after 0/10 tries)
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                 STORAGECLASS   REASON    AGE
pvc-f7163ff9-123d-11e8-b9ce-fa163ea7e2e1   1Gi        RWO            Delete           Released   ubiquity/sanity-pvc   gold                     5m
pv [pvc-f7163ff9-123d-11e8-b9ce-fa163ea7e2e1] still exists. sleeping [2 sec] before retrying to check [0/10]
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                 STORAGECLASS   REASON    AGE
pvc-f7163ff9-123d-11e8-b9ce-fa163ea7e2e1   1Gi        RWO            Delete           Released   ubiquity/sanity-pvc   gold                     5m
pv [pvc-f7163ff9-123d-11e8-b9ce-fa163ea7e2e1] still exists. sleeping [2 sec] before retrying to check [1/10]
pv [pvc-f7163ff9-123d-11e8-b9ce-fa163ea7e2e1] was deleted (after 2/10 tries)

"IBM Storage Enabler for Containers" sanity finished successfully.

Hi @Pensu  if there is no issue, could you please close this ticket?

@shay-berman Hi, yeah, since the ppc64le support is there, I will close this one.


Refactoring for DBMS_METADATA DDL filtering needed.

The package PKG_DDL_UTIL has some constructs that are wrong:

procedure md_set_filter tries to enumerate all object names passed in with an (Oracle) maximum of 100
the EXCLUDE_NAME_EXPR / EXCLUDE_BASE_OBJECT_NAME_EXPR filter does only look at some tables (use SYS ku$_schemaobj_t)

The first issue can be solved by caching the collection in a collection of collections and returning the index. Public routines collection_set / collection_get / collection_del.

See It must be possible to use a schema object id for specifying the object to (NOT) generate DDL for..