text:
Improve front documentation page to highlight documentation classification

In #975 we reviewed our documentation classification according to The Documentation System, and now I think we should highlight it in our documentation more prominently, like the pandas people do:

One idea is to use something like https://github.com/executablebooks/sphinx-panels
By the way, "The Documentation System" is now called Diátaxis https://diataxis.fr/ 😉🇬🇷

I would also suggest that we also have a custom CSS or Custom Theming scheme for the documentation as it will be more tailored towards poliastro.

I am learning Advanced CSS (FlexBox and CSS_Grid) and BootStrap. I guess I can take this as an assignment. I'll get to apply my knowledge in realtime.

Hi @AlphaVictorDelta! I don't think we need much CSS knowledge here, have a look at the extension I linked

I'm blocking this issue on #1158.

Redirected everything to https://www.poliastro.space, working on having the apex domain (https://poliastro.space) working as well. Closing!

Sorry, I closed the wrong issue 🤦🏽

Not blocked anymore.

There was an attempt of doing this at #1175 that doesn't look too bad:

However, it's a minor cosmetic change that doesn't change the overall reader experience on our documentation. I think we should postpone these changes until we bite the bullet and hire a designer that revamps our docs.
This is, therefore, a non-task, so I'm going to close it.

repo: poliastro/poliastro


text:
Extend suppression configuration to be more fine grained

When new Static Analysis Tool (SAT) is introduced it always find a lot of violations in code. But it is not always possible to easily fix them (number of reasons).  To let use successfully apply tool validation quickly, suppression mechanism should allow suppress cases in fine grained way, and enforce build failure appearance of problem in new code.
Base on problem of forbidden-apis enforcement over Checkstyle's code: https://github.com/checkstyle/checkstyle/issues/1217#issuecomment-147527658
It would be very useful to suppress certain validation on certain class(es), rather then all violations.
Discussion why annotations is not a complete solution for this - https://github.com/policeman-tools/forbidden-apis/issues/56#issuecomment-112575929 (and all comments above).
Introduction of annotation is introduction of dependency(through imports) to custom class. forbidden-apis is just a tool and should not go inside of my project, but tool should to do his job on a side.
Good example of tool without intrusion to business code is Maven. It do everything with code (compile,test, verify, .......) and I have no dependency to in my code, it is just a tool that do a job, and project is easily compilable in any IDE and could be switched to Gradle one day. No changes to business code.

Introduction of annotation is introduction of dependency(through imports) to custom class. forbidden-apis is just a tool and should not go inside of my project, but tool should to do his job on a side.

FYI: You don't need to use the supplied annotation, so there is no dependency problem. Elasticsearch or Lucene/Solr have defined a simple annotation (CLASS retention) in their own package. It is not visible at runtime, just part of bytecode (like @NonNull or similar).
For System.out a possible solution is to define @SysoutAllowed in your own package and annotate the methods with it. In the forbiddenapis config you can place a reference to this annotation class an you are done.
I agree the opinions go in different directions so I am sure we can allow to place a separate list of classes/methods/fields like the signatures files for exclusion. The code is not hard to do. Just in our opinion (Lucene/Elasticsearch) it proved to be much easier to maintain to put those as annotations in the code. A separate list is a desaster (like the chain of excludes statements).
Would you pass a list of methods to javac that should suppress javac warnings?
I will look into adding possibility for supplying a list of signatures to excude. But excluding only specific signatures for specific code parts looks like too fine grained (like unsafe signatures for this method, but not sysout). I would not do this!
It is much easier to add the plugin several times as separate maven executions (one time for system out, one time for unsafe/depreacted). This is the approach we had for Lucene and Elasticsearch in the past: They had separate signatures files for tests, for command line tools, or code using commons-io. We just executed forbidden apis several times with different excludes (see history in our svn).
Maybe the different opinions are also caused by the fact that we see a failure in forbidden apis like a hard compile failure. It is not like checkstyle or PMD something that could be fixed to improve code quality. Its a hard requirement that every code checked in passes this check - we don't allow any code anywhere in Lucene to work around that. Because of this we also require a explanatory string in the added annotation, if it really needs to be suppressed. Because of this it is (like SuppressWarnings) very related to our compilation phase, so we like to have the annotation in code. So user also sees explanatory note while editing the code that there is something not right with the code, but still needed. A separate exclusion file does not offer that information easily. E.g. because of Java 9 we forbid AccessibleObject#setAccessible anywhere in our code. If you really really need to use it for reflection you have to write a explicit description about that :-)

So just to confirm: I will add a possibility to list exclusions in a separate file (same format like the signatures files). Like with signatures, the maven plugin will also load those files from Maven Central, if configured like that.

It is not visible at runtime

Main point is to be not visible in development time (in IDE, when engineer need to focus on business logic )

For System.out a possible solution is to define @SysoutAllowed in your own package

It is not a solution, some workarond - yes, but I do not want to pollute my code with classes that are not related to business meaning of my project.

Would you pass a list of methods to javac that should suppress javac warnings?

no, but there is no way to avoid usage of javac, so usage of standard SuppressWarning annotation become a standard.

I will look into adding possibility for supplying a list of signatures to excude

Thanks, we will never come to agreement what is best way to suppress, that why I am asking for additional options.

But excluding only specific signatures for specific code parts looks like too fine grained

yes, I think the good step forward would be stay on Class level. If application designed in good way , certain problems will be collected in one place/class.

It is much easier to add the plugin several times as separate maven executions

that is workaround that other project could use right now, they have no other choice, I hope they would like to minimize configuraton of forbidden-api in their configurations.

Maybe the different opinions are also caused by the fact that we see a failure in forbidden apis like a hard compile failure

Think about new big project that want to start using you tool. He need suppressions to make a "fence" around old-legacy code for some time, and enforce your tool on new code. Suppression are indispensable to make transition easy.

E.g. because of Java 9 we forbid AccessibleObject#setAccessible anywhere in our code. If you really really need to use it for reflection you have to write a explicit description about that :-)

we use reflection a lot in our UTests to reach 100% coverage. So it would be just another suppression for your tool , because in general reflection is bad but we have very god reason to use it, and we benefit a lot from it. I do not want to suppress all rules in UTs, I want only certain rule to be suppressed on certain files.

OK, so I think we agree. I will look into adding support for exclusions in the same way like the general signatures file format. The message could also be reused ("why is it forbidden").
One solution for big new projects is also (since 2.0):
http://jenkins.thetaphi.de/job/Forbidden-APIs/javadoc/check-mojo.html#failOnViolation
It would report violations, but not fail build. So you have enough time to clean up your code.

One solution for big new projects is also (since 2.0):
http://jenkins.thetaphi.de/job/Forbidden-APIs/javadoc/check-mojo.html#failOnViolation
It would report violations, but not fail build. So you have enough time to clean up your code.

As for me this solution will not work. We're all human beings and the laziness is our nature and you will definitely never have enough time to clean up your code. If I have a big project and 'forbidden-apis' gives 100 violations without failing the build there is a high probability that I'll skip several more violations that occurred after my changes. In case of the build failure I will have to fix my code right away.
Let's take "Checkstyle" project as another example. There are a lot of pull requests each day. We would definitely not use failOnViolation=false but prefer to exclude all the current errors and make failOnViolation=true that will allow us to filter new violations on a pull request stage and concentrate on fixing just existing violations. As a result quick integration of 'forbidden-apis' into the project.

I think it could be useful to have a sort of ratcheting mechanism. You can declare the number of failures that are OK somewhere and if that number is exactly the number of failures then the build passes. It'd provide a way to incrementally ban something: declare the number of allowed violations to the ban to be exactly as many as there are now. When you remove violations you ratchet the value down. When someone else tries to add a violation the build fails and they do what the failure message tells them to do.
I've seen it in tools like https://github.com/bbatsov/rubocop and it provides a simple "on ramp" so you can add new rules, stop yourself from violating them in the future, and incrementally fix old violations.

@uschindler , what do you think of @SuppressWarnings(...)?
I agree with @romani that the annotation is standard, and it is universally understood by developers.
See a sample from ErrorProne: https://errorprone.info/bugpattern/UnsafeLocaleUsage
The Checker Framework follows uses @SuppressWarnings as well: https://checkerframework.org/manual/#suppresswarnings-best-practices
For instance:
> Task :postgresql:forbiddenApisMain FAILED
Forbidden class/interface use: sun.security.krb5.Credentials [non-public internal runtime class in Java 1.8]
  in org.postgresql.core.v3.ConnectionFactoryImpl (ConnectionFactoryImpl.java:415)

The way to suppress it could be:
a) @SuppressWarnings("forbidden.class") (e.g. to allow all forbidden classes in the method)
b) @SuppressWarnings("forbidden.class:sun.security.krb5.Credentials") (allow one class by name)

@uschindler , what do you think of @SuppressWarnings(...)?
I agree with @romani that the annotation is standard, and it is universally understood by developers.
See a sample from ErrorProne: https://errorprone.info/bugpattern/UnsafeLocaleUsage
The Checker Framework follows uses @SuppressWarnings as well: https://checkerframework.org/manual/#suppresswarnings-best-practices
For instance:
> Task :postgresql:forbiddenApisMain FAILED
Forbidden class/interface use: sun.security.krb5.Credentials [non-public internal runtime class in Java 1.8]
  in org.postgresql.core.v3.ConnectionFactoryImpl (ConnectionFactoryImpl.java:415)

The way to suppress it could be:
a) @SuppressWarnings("forbidden.class") (e.g. to allow all forbidden classes in the method)
b) @SuppressWarnings("forbidden.class:sun.security.krb5.Credentials") (allow one class by name)

Hi,
@SuppressWarnings is Retention.SOURCE, so it is no longer visible in resulting class files.
When we introduced forbidden apis for the first time, of course we investigated to use the Standard annotation, otherwise we would not have invented a new one.
In short using SuppressWarnings is impossible, as forbidden apis is not a source code analysis tool. It is used to analyze of class files and also works with any JVM based language, including Kotlin and Groovy. That's the cool thing, but on the other hand it's not a classical source code static analysis tool.

Hi,
@SuppressWarnings is Retention.SOURCE, so it is no longer visible in resulting class files.
When we introduced forbidden apis for the first time, of course we investigated to use the Standard annotation, otherwise we would not have invented a new one.
In short using SuppressWarnings is impossible, as forbidden apis is not a source code analysis tool. It is used to analyze of class files and also works with any JVM based language, including Kotlin and Groovy. That's the cool thing, but on the other hand it's not a classical source code static analysis tool.

Is there a way to declare @SuppressForbidden("...") annotation so the suppressions can be added without adding a new annotation every time?
That is want to confine the forbidden signature, and I do not want to suppress too much with a wildcard @SuppressForbidden.

Is there a way to declare @SuppressForbidden("...") annotation so the suppressions can be added without adding a new annotation every time?
That is want to confine the forbidden signature, and I do not want to suppress too much with a wildcard @SuppressForbidden.

Hi,
I agree that's theoretically possible, but not yet implemented. I have to go through this issue to figure out what needs to be done.
In Apache Lucene and Elasticsearch the approach used was to put the call that needs suppression into a separate method, so if was never high priority. Adding all those suppression strings to class files may also not always been wanted. But nevertheless, the tool could apply suppressions like glob patterns of class names, if it finds some String value inside the annotation.
The code may get a bit more complicated, ass suppressions are applied after class was parsed (e.g. to understand lambdas!), So I would need to keep track of all annotations.

Hi,
I agree that's theoretically possible, but not yet implemented. I have to go through this issue to figure out what needs to be done.
In Apache Lucene and Elasticsearch the approach used was to put the call that needs suppression into a separate method, so if was never high priority. Adding all those suppression strings to class files may also not always been wanted. But nevertheless, the tool could apply suppressions like glob patterns of class names, if it finds some String value inside the annotation.
The code may get a bit more complicated, ass suppressions are applied after class was parsed (e.g. to understand lambdas!), So I would need to keep track of all annotations.

De-lamdification might be non-trivial indeed.
I guess suppression might be quite usable even if forbidden-apis did not see through lambda.

But nevertheless, the tool could apply suppressions like glob patterns of class names, if it finds some String value inside the annotation.

I thought behind the lines of creating a targeted set of keys for suppression purposes.
However, another option might be to use the signature itself in the annotation: @SuppressForbidden("java.lang.Object#wait(long)"). It would be more-or-less consistent with the existing configuration, and it would be great if suppression could be printed right in the error message :)

De-lamdification might be non-trivial indeed.
I guess suppression might be quite usable even if forbidden-apis did not see through lambda.

But nevertheless, the tool could apply suppressions like glob patterns of class names, if it finds some String value inside the annotation.

I thought behind the lines of creating a targeted set of keys for suppression purposes.
However, another option might be to use the signature itself in the annotation: @SuppressForbidden("java.lang.Object#wait(long)"). It would be more-or-less consistent with the existing configuration, and it would be great if suppression could be printed right in the error message :)

Sample suppressions: https://github.com/apache/calcite/blob/155276591288615c4d02d55fb7d77eceb2e24b2d/core/src/main/java/org/apache/calcite/util/Unsafe.java , https://github.com/pgjdbc/pgjdbc/pull/2015/files#diff-fad1e587e61f470d246ea85f43f1151a0d6adfcecb26c9ada0ae5bdf0fe9534b
It looks like one of the best patterns, for now, is an Unsafe class that is excluded from forbidden-apis check.

Sample suppressions: https://github.com/apache/calcite/blob/155276591288615c4d02d55fb7d77eceb2e24b2d/core/src/main/java/org/apache/calcite/util/Unsafe.java , https://github.com/pgjdbc/pgjdbc/pull/2015/files#diff-fad1e587e61f470d246ea85f43f1151a0d6adfcecb26c9ada0ae5bdf0fe9534b
It looks like one of the best patterns, for now, is an Unsafe class that is excluded from forbidden-apis check.

Lambdas are working fine since approx 2013! It just needs adaption to keep track of annotations to support the glob pattern parameter on the annotation. Currently it only keeps track yes/no in a very simple way...
I have to look into it again, since this issue was opened, a lot happened.

Lambdas are working fine since approx 2013! It just needs adaption to keep track of annotations to support the glob pattern parameter on the annotation. Currently it only keeps track yes/no in a very simple way...
I have to look into it again, since this issue was opened, a lot happened.

@uschindler , did you come with some ideas howto make it?
we run into this problem again, and suppress all violations in files rather then specific violation.
Example of our desire to gradually cleanup deprecated internal method call - https://github.com/checkstyle/checkstyle/pull/10417 .
So we want to enforce most strict rules to new code and existing code cleanup will take a bit of time.

We would like to have a suppression list.
I can not recompile for example Guava (or any other library) to add some annotations to them. Due to transitive dependencies, I can not exclude them from compile-time, but I would like to prevent developers from using those transitive dependencies (like Commons Lang, Guava).
We used the same approach with Checkstyle and it has been working great!

Hi @thatsIch,
I do not understand from your comment what you intend to do. This issue here is about adding @SuppressForbidden with some more fine granular exclusion. I plan to implement this based on something like "tags". So each signatures file can have tags (by default e.g. "jdk-unsafe") or you can also tag several forbidden signatures using another @tag XYZ which applies to all following signatures. It would then be possible to add @SuppressForbidden("jdk-unsafe") in code.
From what I understand in your question, it looks like you have transitive dependencies and you want to disallow your own developers from using them. This is a different thing and works out of box with a custom signatures filein your project directory: In that case you need to define a signatures file and just add a package forbid, e.g. to disallow usage of commons-lang3 and Guava use the following signatures.txt file and include it in the config:
org.apache.commons.lang3.** | Don't use Apache Commons Lang 3
com.google.common.** | Don't use Guava

The signatures would apply to your own code, but any dependency is not scanned so it can still use those APIs (unless they expose them in their API - but when you forbid it, you also don't want to use signatures taking Lang or Guava classes.
BTW, Elasticsearch and Solr are doing exactly this with subsets of Guava.

Hi, my intro to previous comment was more about #157. This issue is about config file instead of Suppressor bidden annotation.
But from your question I think my answer should be helpful.

Thanks, seems I was not aware that the resolution was a config-based suppression system and I misunderstood the given examples in this thread how the annotation-based system works.

source: gharchive/issue

authors: nik9000 rdiachenko romani thatsIch uschindler vlsi

repo: policeman-tools/forbidden-apis

license_type: permissive

license_source: bigquery


text:
[Bug] checkhealth telescope._extensions.lazy_plugins returns an error

I see that there is a checkhealth command available:

When I run it, the following error is reported:
telescope._extensions.lazy_plugins: require("telescope._extensions.lazy_plugins.health").check()

- ERROR Failed to run healthcheck for "telescope._extensions.lazy_plugins" plugin. Exception:
  [string "require("telescope._extensions.lazy_plugins.h..."]:1: attempt to index a function value

checkhealth telescope is ok:
==============================================================================
telescope: require("telescope.health").check()

Checking for required plugins ~
- OK plenary installed.
- OK nvim-treesitter installed.

Checking external dependencies ~
- OK rg: found ripgrep 14.1.0 (rev e50df40a19)
- OK fd: found fd 9.0.0

===== Installed extensions ===== ~

Telescope Extension: `aerial` ~
- No healthcheck provided

Telescope Extension: `everything` ~
- No healthcheck provided

Telescope Extension: `fzf` ~
- OK lib working as expected
- OK file_sorter correctly configured
- OK generic_sorter correctly configured

Telescope Extension: `lazy_plugins` ~
- OK Lazy configuration file was found.
- OK Path to Lazy plugins spec table file found.

Telescope Extension: `projects` ~
- No healthcheck provided

Hi! Thanks for the bug report!
Yes, that shouldn't be exposed
Hi! Thank you very much for the bug report.
Yes, indeed, that check function shouldn't be exposed. As stated in the README, its usage is through :checkhealth telescope.

Closed by c9d251d18025468b6649e8489d3b6f3510027f03

license: MIT

license_source: github-api


text:
Maintenance -> Storage Migrations

This PR aims to add the "Storage Migrations" page to the "Maintenance" section of Develop

@eshaben I made formatting edits, Grammarly pass, etc. Needs final formatting signoff. Thanks!

source: gharchive/pull-request

repo: polkadot-developers/polkadot-docs


text:
DatasetGenerationError: An error occurred while generating the dataset | ValueError: NaTType does not support utcoffset

dataset = load_dataset('poloclub/diffusiondb', '2m_random_50k', split="all")

Gives error:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File ~/env/lib/python3.8/site-packages/datasets/builder.py:1626, in GeneratorBasedBuilder._prepare_split_single(self, gen_kwargs, fpath, file_format, max_shard_size, split_info, check_duplicate_keys, job_id)
   1625 example = self.info.features.encode_example(record) if self.info.features is not None else record
-> 1626 writer.write(example, key)
   1627 num_examples_progress_update += 1

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:488, in ArrowWriter.write(self, example, key, writer_batch_size)
    486     self.hkey_record = []
--> 488 self.write_examples_on_file()

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:446, in ArrowWriter.write_examples_on_file(self)
    442         batch_examples[col] = [
    443             row[0][col].to_pylist()[0] if isinstance(row[0][col], (pa.Array, pa.ChunkedArray)) else row[0][col]
    444             for row in self.current_examples
    445         ]
--> 446 self.write_batch(batch_examples=batch_examples)
    447 self.current_examples = []

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:551, in ArrowWriter.write_batch(self, batch_examples, writer_batch_size)
    550 typed_sequence = OptimizedTypedSequence(col_values, type=col_type, try_type=col_try_type, col=col)
--> 551 arrays.append(pa.array(typed_sequence))
    552 inferred_features[col] = typed_sequence.get_inferred_type()

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:236, in pyarrow.lib.array()

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:110, in pyarrow.lib._handle_arrow_array_protocol()

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:189, in TypedSequence.__arrow_array__(self, type)
    188     trying_cast_to_python_objects = True
--> 189     out = pa.array(cast_to_python_objects(data, only_1d_for_numpy=True))
    190 # use smaller integer precisions if possible

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:320, in pyarrow.lib.array()

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:39, in pyarrow.lib._sequence_to_array()

File ~/env/lib/python3.8/site-packages/pyarrow/error.pxi:144, in pyarrow.lib.pyarrow_internal_check_status()

File ~/env/lib/python3.8/site-packages/pandas/_libs/tslibs/nattype.pyx:67, in pandas._libs.tslibs.nattype._make_error_func.f()

ValueError: NaTType does not support utcoffset

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
File ~/env/lib/python3.8/site-packages/datasets/builder.py:1635, in GeneratorBasedBuilder._prepare_split_single(self, gen_kwargs, fpath, file_format, max_shard_size, split_info, check_duplicate_keys, job_id)
   1634 num_shards = shard_id + 1
-> 1635 num_examples, num_bytes = writer.finalize()
   1636 writer.close()

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:582, in ArrowWriter.finalize(self, close_stream)
    581     self.hkey_record = []
--> 582 self.write_examples_on_file()
    583 # If schema is known, infer features even if no examples were written

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:446, in ArrowWriter.write_examples_on_file(self)
    442         batch_examples[col] = [
    443             row[0][col].to_pylist()[0] if isinstance(row[0][col], (pa.Array, pa.ChunkedArray)) else row[0][col]
    444             for row in self.current_examples
    445         ]
--> 446 self.write_batch(batch_examples=batch_examples)
    447 self.current_examples = []

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:551, in ArrowWriter.write_batch(self, batch_examples, writer_batch_size)
    550 typed_sequence = OptimizedTypedSequence(col_values, type=col_type, try_type=col_try_type, col=col)
--> 551 arrays.append(pa.array(typed_sequence))
    552 inferred_features[col] = typed_sequence.get_inferred_type()

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:236, in pyarrow.lib.array()

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:110, in pyarrow.lib._handle_arrow_array_protocol()

File ~/env/lib/python3.8/site-packages/datasets/arrow_writer.py:189, in TypedSequence.__arrow_array__(self, type)
    188     trying_cast_to_python_objects = True
--> 189     out = pa.array(cast_to_python_objects(data, only_1d_for_numpy=True))
    190 # use smaller integer precisions if possible

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:320, in pyarrow.lib.array()

File ~/env/lib/python3.8/site-packages/pyarrow/array.pxi:39, in pyarrow.lib._sequence_to_array()

File ~/env/lib/python3.8/site-packages/pyarrow/error.pxi:144, in pyarrow.lib.pyarrow_internal_check_status()

File ~/env/lib/python3.8/site-packages/pandas/_libs/tslibs/nattype.pyx:67, in pandas._libs.tslibs.nattype._make_error_func.f()

ValueError: NaTType does not support utcoffset

The above exception was the direct cause of the following exception:

DatasetGenerationError                    Traceback (most recent call last)
Cell In[2], line 5
      2 from datasets import load_dataset
      4 # Load the dataset with the `large_random_1k` subset
----> 5 dataset = load_dataset('poloclub/diffusiondb', '2m_random_50k', split="all")

File ~/env/lib/python3.8/site-packages/datasets/load.py:1782, in load_dataset(path, name, data_dir, data_files, split, cache_dir, features, download_config, download_mode, verification_mode, ignore_verifications, keep_in_memory, save_infos, revision, use_auth_token, task, streaming, num_proc, **config_kwargs)
   1779 try_from_hf_gcs = path not in _PACKAGED_DATASETS_MODULES
   1781 # Download and prepare data
-> 1782 builder_instance.download_and_prepare(
   1783     download_config=download_config,
   1784     download_mode=download_mode,
   1785     verification_mode=verification_mode,
   1786     try_from_hf_gcs=try_from_hf_gcs,
   1787     num_proc=num_proc,
   1788 )
   1790 # Build dataset for splits
   1791 keep_in_memory = (
   1792     keep_in_memory if keep_in_memory is not None else is_small_dataset(builder_instance.info.dataset_size)
   1793 )

File ~/env/lib/python3.8/site-packages/datasets/builder.py:872, in DatasetBuilder.download_and_prepare(self, output_dir, download_config, download_mode, verification_mode, ignore_verifications, try_from_hf_gcs, dl_manager, base_path, use_auth_token, file_format, max_shard_size, num_proc, storage_options, **download_and_prepare_kwargs)
    870     if num_proc is not None:
    871         prepare_split_kwargs["num_proc"] = num_proc
--> 872     self._download_and_prepare(
    873         dl_manager=dl_manager,
    874         verification_mode=verification_mode,
    875         **prepare_split_kwargs,
    876         **download_and_prepare_kwargs,
    877     )
    878 # Sync info
    879 self.info.dataset_size = sum(split.num_bytes for split in self.info.splits.values())

File ~/env/lib/python3.8/site-packages/datasets/builder.py:1649, in GeneratorBasedBuilder._download_and_prepare(self, dl_manager, verification_mode, **prepare_splits_kwargs)
   1648 def _download_and_prepare(self, dl_manager, verification_mode, **prepare_splits_kwargs):
-> 1649     super()._download_and_prepare(
   1650         dl_manager,
   1651         verification_mode,
   1652         check_duplicate_keys=verification_mode == VerificationMode.BASIC_CHECKS
   1653         or verification_mode == VerificationMode.ALL_CHECKS,
   1654         **prepare_splits_kwargs,
   1655     )

File ~/env/lib/python3.8/site-packages/datasets/builder.py:967, in DatasetBuilder._download_and_prepare(self, dl_manager, verification_mode, **prepare_split_kwargs)
    963 split_dict.add(split_generator.split_info)
    965 try:
    966     # Prepare split will record examples associated to the split
--> 967     self._prepare_split(split_generator, **prepare_split_kwargs)
    968 except OSError as e:
    969     raise OSError(
    970         "Cannot find data file. "
    971         + (self.manual_download_instructions or "")
    972         + "\nOriginal error:\n"
    973         + str(e)
    974     ) from None

File ~/env/lib/python3.8/site-packages/datasets/builder.py:1488, in GeneratorBasedBuilder._prepare_split(self, split_generator, check_duplicate_keys, file_format, num_proc, max_shard_size)
   1486 gen_kwargs = split_generator.gen_kwargs
   1487 job_id = 0
-> 1488 for job_id, done, content in self._prepare_split_single(
   1489     gen_kwargs=gen_kwargs, job_id=job_id, **_prepare_split_args
   1490 ):
   1491     if done:
   1492         result = content

File ~/env/lib/python3.8/site-packages/datasets/builder.py:1644, in GeneratorBasedBuilder._prepare_split_single(self, gen_kwargs, fpath, file_format, max_shard_size, split_info, check_duplicate_keys, job_id)
   1642     if isinstance(e, SchemaInferenceError) and e.__context__ is not None:
   1643         e = e.__context__
-> 1644     raise DatasetGenerationError("An error occurred while generating the dataset") from e
   1646 yield job_id, True, (total_num_examples, total_num_bytes, writer._features, num_shards, shard_lengths)

DatasetGenerationError: An error occurred while generating the dataset
Generating train split: 13999 examples [00:45, 540.25 examples[/s](https://file+.vscode-resource.vscode-cdn.net/s)]

Hi @ivanmkc, do you have the same error when loading dataset = load_dataset('poloclub/diffusiondb', 'large_first_1k')?

Same here.

Thanks for letting me know. I think 3ae273772c717cf9d04b2b85b7b2ceaebbff144f should fix this issue. Let me know if it doesn't work.

authors: fecet ivanmkc xiaohk

repo: poloclub/diffusiondb


text:
Consider adding Sequence.Concat

The Concat function of IEnumerable<T> is useful, but if the only thing we're doing is concating there's a bit of an asymetry for the first item:
first.Concat(second).Concat(third);

vs
Sequence.Concat(first, second, third)

The question is, is this really better than ImmutableList.Create()?

I think yes, since it's clearly another intention.
Variadic implementation possible with params in this case.

The question is, is this really better than ImmutableList.Create()?

I think yes, since it's clearly another intention.
Variadic implementation possible with params in this case.

authors: FreeApophis bash

repo: polyadic/funcky


text:
Moving to an organization

So a few months ago I created the organization @polybar with the idea that at some point we could migrate all polybar repositories into that organization.
This has a few benefits:

All core devs have full access privileges to all repos
We don't need to ping jaagr every time we need some settings adjusted
Better privilege management via teams and outside collaborators
With teams we can give new collaborators access to just those repos they are responsible for. Some use cases for this could be for adding new maintainers for just i3ipcpp, xpp or polybar.github.io. The same thing for outside collaborators.
Having all polybar repos bundled in one place

Some of these benefits may not seem like a lot now, but in the future I can see the polybar project having even more repos (for external modules once we finish the plugin architecture, documentation, tooling) and more maintainers with different levels of access.
The migration would be done with the Transfer Ownership feature. I have done some testing and believe such a migration could be done without breaking anything. I will do a writeup of what I tested and how exactly the migration process will happen after we all agreed to proceed with the migration.
With this migration I would also like make polybar more formally our (skystrife, jaagr, NBonaparte, patrick96) project instead of just jaagr's. This is already de facto the case but I want to make it more official. I want polybar to stay alive, even if some people become inactive and this will help with that. jaagr will still retain the copyright to the project unless we decide to create a legal entity for this project, but I think this is a bit overkill right now.
@jaagr, @skystrife, @NBonaparte, do you support migrating the repos jaagr/polybar, jaagr/i3ipcpp, jaagr/xpp to the polybar organization?
@jaagr, I want to hear especially from you, because in the end this hinges on you. With this migration polybar would officially stop being just your project but would become our project (including you). Are you OK with that?

It would be nice to centralize everything, but as you said, it's up to jaagr to approve it.

I'm fine with this, but also agree that it's up to @jaagr.

Of course 👍

Test Results:
So, as I said before, I tested out the "Transfer Ownership" feature with a sample repo.
Here are the results:
What is migrated?
Basically everything. git history, issues, PRs, milestones, projects, wiki, releases, settings.
Are links to the old repo updated?
No. The transfer doesn't change any content. All links still point to the old URL. Issues and PRs referenced with # also point to the old URL, those links are only updated if the line they're on is changed (github seems to cache the generated html from comments).
How do old links work?
All links to the old repo URL will be redirected to the same relative URL in the new repo. shields.io badges still work properly. And more importantly if the moved repo is a submodule somewhere, that submodule still works.
Migration:
I'd like to do the migration in multiple steps, just in case something goes wrong:

[ ] Transfer ownership of jaagr/xpp
[ ] Update xpp submodule to new URL
[ ] Transfer ownership of jaagr/i3ipcpp
[ ] Update i3ipcpp submodule to new URL
[ ] Transfer ownership of jaagr/polybar
[ ] Update all links to jaagr/* repos inside the repo (shields.io badges, PKGBUILD, config, manpage, zsh completions). Essentially there should be no links left that contain jaagr in any of the repos.
[ ] Update all outside links to the old URL (wiki, AUR, reddit, irc, polybar.github.io)

The reason I want to do it this way is that we can catch any errors before we have fully migrated.
@jaagr, you only need to do the "Transfer Ownership" part, everything else can be done by me/us.
Important
@jaagr under no circumstance can you ever create a repo with the name polybar, xpp, or i3ipcpp in your account. If you do, all links to the old URLs will be broken. This also means you can never press the 'Fork' button on any of these three repos. This is a bit of an inconvenience since you cannot have a functional fork in your own account and can thus not create PRs (there is no way when you don't have a fork). So, if you are working on a new branch, create that branch in the polybar/polybar repo instead.
Please read Transferring a repository owned by your personal account for how to transfer the repo to the org. Also post it here, once you have transferred a repo so I can do the next step and give you the all clear for the next transfer.
For me to update the subreddit and irc I need permissions in those places, as mentioned in #1489 my username in reddit is patrick96MC, on IRC in order for me to set the topic and the url I need at least the flags +s and +t, but it's probably best to give me the same access that you have +AFORefiorstv. This can be done with /msg ChanServ flags #polybar patrick96 +AFORefiorstv.
I really hope I haven't missed anything.

If you want I can move the Awesome Polybar to the organization.

Wow, I didn't even know about Awesome-Polybar!
We will discuss this once we have migrated our own repos.
@x70b1 from polybar-scripts also offered to migrate.

Migration is done and there haven't been any issues so far.
We have also decided to migrate @x70b1's polybar-scripts repo.
@TiagoDanin We found that if we migrated both your repo and x70b1's, we would have a lot of redundant content since you both link to some of the same pages and you even link to some of his. We decided to go with x70b1 because he is more active in the community, especially on IRC. But I have linked to your project on our wiki.

authors: NBonaparte TiagoDanin jaagr patrick96 skystrife

repo: polybar/polybar


text:
Improved PR + Release Workflow (Increase Code Velocity)

Implement a system of 3 branches, 2 of which will have continuous deployment. Ordering these branches from most stable to least:

Release (ex: prealpha)
Release Candidate (ex: prealpha-rc)
Dev (ex: prealpha-dev)

Branch policies will be configured in the following ways:

Release - 1 or more publishers (individuals listed in the .github/PUBLISHERS file) must approve.
Release Candidate - code owners (individuals listed in the .github/CODEOWNERS file) must approve. These individuals will be chosen based the files modified in the PR.
Dev - 2 or more developers working on the project must approve. This is intended to be the fastest path, to help improve code velocity.

Continuous deployments will be configured in the following ways:

Release - Versions will take the form of #.#.#-name.# where -name could be prealpha, alpha, beta, or completely omitted if release is production read (along with the final trailing .#.
Release Candidate - Versions will take the form of #.#.#-name.#-rc.# where -rc.# will continually increment until a release is made. Note that the version before -rc.# should be the next release. So if the current release is 0.0.1-prealpha.55, then the Release Candidate version should be 0.0.1-prealpha.56-rc.#.

Agile and Lean are two good places to look for velocity metrics.
Traditionally agile includes a story writing and complexity point estimation. In scrum you'd measure "velocity" as the number of complexity points you shipped to production in a sprint. This turns out to take quite a lot of time and energy, and is difficult to make consistent (a team has to get good at estimation together and per project).
Lean prefers to look at lead times and cycle times. Cycle time is how long a "piece" (feature, widget, bugfix, etc.) takes to be released to production from the time engineers begin actively working on it. Lead time is the time it takes from the identification of a need (discovering the need for a feature, or discovering a bug, etc.) to it's solution being delivered to users (deployed to production).
I've tracked both and have found lead and cycle times to be more valuable and less costly to implement. I like to track a rolling percentile of lead times and cycle times for this.

authors: dOrgJelli jessebmiller

repo: polywrap/monorepo


text:
Use PolywrapClientConfig instead of parts of it in PolywrapProvider

Example use of the current PolywrapProvider:
const redirects = [];
const plugins = [];
<PolywrapProvider redirects{redirect} plugins={plugins}>
</PolywrapProvider>

A much cleaner (and similar to other react packages) interface would be:
const config = {};
<PolywrapProvider config={config}>
</PolywrapProvider>

Agreed 💯

authors: dOrgJelli nerfZael

repo: polywrap/toolchain


text:
Check that the descriptions of deletions in which the allele name indicates what "remains" match

Check that the descriptions of deletions in which the allele name indicates what "remains" match

Similar to #12 You can take a look at it, or close the issue


text:
possible term rename

FYPO:0000938	abolished protein localization to cortical microtubule cytoskeleton during vegetative growth
could this be renamed
FYPO:0000938	abolished protein localization to cortical microtubule cytoskeleton during mitotic interphase
(since the cortical cytoskeleton only exists during interphase this should be OK?)
and it will match:
normal protein localization to microtubule cytoskeleton during mitotic interphase

Done. More importantly, it's safe to rename because FYPO:0000938 isn't used for any annotations at present.
(note: the 'normal' term you mention isn't specific to the cortical MT cytoskeleton, so matching it is irrelevant)

ok

edit file: b457a5e39cea1a313d9ee4badbdb7642b6e73d30
release: cfd04996f5dd4eeea9667c5ab978103c937b76ad

repo: pombase/fypo


text:
PMID:29180432 nuclear MIS12/MIND complex binding

normal and ~abnormal~ abolished
GO:0000818 | nuclear MIS12/MIND complex
binding
(I know this one should have been sent out for CC  but I had sorted it with the structure papers as I thought it would be a quick one)

normal nuclear MIS12/MIND complex binding FYPO:0006798
abolished nuclear MIS12/MIND complex binding FYPO:0006799
edit file: 4f20d530a9200c7de2f71b77100a57f8bdeb76a6
release: 198251df4ecf1ed5dc0310ed75ee9d7f11a3c1f9


text:
add "x in absence of stress"

We need to
i) Identify the set of terms which have "during x stress"
ii) make checks to confirm the parent term has only been used for "unstressed"
iii) move the non-stressed term to  a child term to represent "unstressed conditions
iv) Create a parent term with comment  directing curators to child terms
Original comment by: ValWood

ancient and stalled; reopen if interest ever renews


text:
Build the allele_qc container in the nightly load script

In allele_qc:
docker build -f Dockerfile -t pombase/allele_qc:v5 .

@manulera

RElated to https://github.com/pombase/allele_qc/issues/42

The container is now re-built and re-deployed by the nightly load script.  I'll check on Thursday to make sure it worked OK.

I'll check on Thursday to make sure it worked OK.

Yep, that worked.

authors: kimrutherford manulera

repo: pombase/pombase-chado


text:
slim tool is broken

all genes go into the "not covered by the slim bin"
v

actually it works for a query, but not for an uploaded list, I think...

it's working for me either way

Hmm, I was using lists in my history.. need breakfast and will then dig deeper....

I tried one and it worked too ...

all genes go into the "not covered by the slim bin"

That's a worry.  I have a ask: did you have a list of unknown genes?  :-)

I thought that at first but no. try this list:
gene_list.txt

bizarre - I get the bug with that list, but not with any other list I try

Something is very wrong.  If you start from a slim term like detoxification:
https://www.pombase.org/term_genes/GO:0098754
Then get the gene list and press the slim button, none of the genes are in the detoxification category.  That makes no sense.
I don't think it's an ontology problem and I haven't change the slim code in weeks.

OK this is weird.
The slim looks OK right now.
https://www.pombase.org/browse-curation/fission-yeast-go-slim-terms
I also get the problem with this list?
SPCC306.06c
SPAC2E1P3.04
SPCC2H8.05c
SPBC21.02
SPCC126.15c
SPBC365.14c
SPAC1805.14
SPAC9G1.07
SPBC19G7.18c
SPBC557.02c
SPCC1259.08
SPCC594.02c

It doesn't even have the decency to affect all slim terms - query-then-slim output looks fine for DNA recombination (GO:0006310) or protein modification by small protein conjugation or removal (GO:0070647).

It seems tat certain gene do not slim. bqt2 for example.
but on the gene page it is slimmed to meiotic nuclear division
https://www.pombase.org/gene/SPAC1002.06c

bqt2 also appears on the term page for meiotic nuclear division
https://www.pombase.org/term_genes/GO:0140013

when I slim everything:

so some terms are ignored...

but not here:
https://www.pombase.org/browse-curation/fission-yeast-go-slim-terms

I think I've fixed this.  I think the slim fix won't cause problems elsewhere but please let me know if you spot any weirdness.

https://github.com/geneontology/amigo/issues/558

OK I just noticed you fixed it.
But did you fix it, or  did you make it more robust to an underlying transitivity issue?

But did you fix it, or did you make it more robust to an underlying transitivity issue?

It was definitely a bug in the code.  In some cases it was ignoring the parent-child relations when the parent had no annotations.  There was no ontology problem.

authors: ValWood kimrutherford mah11

repo: pombase/website


text:
JBrowse gene page view

Is looking a bit weird:
I can't quite figure the problem but it is similar to the mitochondrial genome problem. I can no longer see both strands.
Screenshot below:

I think it's because of the big stack of feature just off screen to the right.  It pushes the reverse strand down and off the bottom of the view.  I think it's the same problem for the mitochondrial genes.

I know what is causing this problem. These "DNA replication origin" features, are in the main annotation  rather than in their own track:

OK, this is sounding vaguely familiar. Are these in the artemis files?
I don't have Artemis on my new laptop yet (won't install).

OK, this is sounding vaguely familiar. Are these in the artemis files?

Yep:
FT   rep_origin      1095554..1095603
FT                   /colour=2
FT                   /note="ars1, segment 1 (Clyne & Kelly)"
FT   rep_origin      1095554..1096335
FT                   /note="ars1, minimal sequence (Clyne & Kelly)"
FT   rep_origin      1095568..1095608
FT                   /colour=4
FT                   /note="protected region F (PMID 11717425), protected
FT                   region D (PMID 12374757)"
FT   rep_origin      1095736..1095739
FT                   /colour=7
FT                   /note="Initiation site in ars1 determined by RIP mapping
FT                   (PMID:10523311)"
FT   rep_origin      1095858..1095884
FT                   /colour=4
FT                   /note="protected region E (PMID 11717425)"
FT   rep_origin      1095921..1095936
FT                   /colour=4
FT                   /note="protected region D (PMID 11717425); protected
FT                   region C (PMID 12374757)"
FT   rep_origin      1095954..1096003
FT                   /colour=2
FT                   /note="segment 9 (Clyne and Kelly)"
FT   rep_origin      1096013..1096030
FT                   /colour=4
FT                   /note="protected region C (PMID 11717425)"
FT   rep_origin      1096094..1096131
FT                   /colour=4
FT                   /note="protected region B (PMID 11717425)"
FT   rep_origin      1096206..1096230
FT                   /colour=4
FT                   /note="protected region A (PMID 11717425)"

It's these
FT   rep_origin      1095554..1095603
FT                   /colour=2
FT                   /note="ars1, segment 1 (Clyne & Kelly)"
FT   rep_origin      1095554..1096335
FT                   /note="ars1, minimal sequence (Clyne & Kelly)"
FT   rep_origin      1095568..1095608
FT                   /colour=4
FT                   /note="protected region F (PMID 11717425), protected
FT                   region D (PMID 12374757)"
FT   rep_origin      1095736..1095739
FT                   /colour=7
FT                   /note="Initiation site in ars1 determined by RIP mapping
FT                   (PMID:10523311)"
FT   rep_origin      1095858..1095884
FT                   /colour=4
FT                   /note="protected region E (PMID 11717425)"
FT   rep_origin      1095921..1095936
FT                   /colour=4
FT                   /note="protected region D (PMID 11717425); protected
FT                   region C (PMID 12374757)"
FT   rep_origin      1095954..1096003

OK, these are very old from when single origins were studied.
I suggest we  just keep the main replication origin feature and delete all of the 'protected region' and 'minimal sequence' annotations.
These were annotated by me about 25 years ago I think!
So it seems that the new JBrowse is recognising  and displaying annotated features that were previously ignored?
When I do the  feature annotation update, I might create a separate tracks for other  manually curated features if this begins to get crowded/ continues to be a problem.

I need to fix this...

I just left the actual "replication origin" feature

I just left the actual "replication origin" feature

Did you commit a fix?

oops no. done for tomorrow

Fixed now.  Thanks.

authors: ValWood kimrutherford


text:
possible bug , protein length with alternative transcriptd

For crd1 the reported protein length is 389, but transcript 1 has  595 aa?

It was showing the protein length of transcript 2 instead of the primary transcript due to some very naff code.  Fixed for the morning.

Fixed for the morning.

It's fixed on the dev site but not on the main site yet.  I'm having trouble accessing the machine at Babraham and I'm waiting for help from them before I can update things.


text:
sub menus

When the sub-menus are opened it's a bit difficult to notice which are sub menus.
If these could be coloured slightly differently it might help?

When the sub-menus are opened it's a bit difficult to notice which are sub menus.

Do the sub-menu items need to be more noticeable than the other menu items?

not  necessarily more noticeable , but might be better if they were better differentiated.

Would it be possible (and interesting) to have a 3-levels menu, kind of like this :

but might be better if they were better differentiated.

We could indent them more?

For comparison, we have a nested menu in the documentation: https://www.pombase.org/downloads

Maybe we can discuss on the next call.

Link this ticket to the other suggestion

Link this ticket to the other suggestion

https://github.com/pombase/website/issues/1940#issue-1411301314
I think the plan is to highlight the menu item(s) as they scroll into view.

I think the plan is to highlight the menu item(s) as they scroll into view.

I've been working on this.  My desktop version has my work in progress.  There are many bugs still though:
https://desktop.kmr.nz/gene/SPBC216.07c

There are many bugs still though

There are fewer bugs now so I've released the changes.
For now the highlighting is quite subtle but it's easy to change.  Also all the sections that are on screen are highlighted in the menu, not just the first.  That was easier to implement so I thought we could give that a go first.
Let's chat about it on the call.

There are fewer bugs now so I've released the changes.

It's only implemented for gene pages so far.  I'll add it to the other pages (publications, terms, genotypes, alleles) once we've had a chat about it.

I think that's pretty neat too !
The highlighting seems clear enough with the darker edge on the right, maybe it could be stronger, but I don't think it needs to be as obvious as on SGD.
I noticed that sometimes a section is highlighted even though it doesn't appear on screen (like Modifications in the image below)

Hi Pascal.  Which browser is that?

In my desktop version I've made the sensitivity a little bit lower. Could you try my desktop version and see if you have the same issue?: https://desktop.kmr.nz/gene/SPAC20G8.05c

I think it worked, I couldn't replicate the issue on your desktop version. When the previous section highlights, it is already partially on screen. The image shows the point at which the previous section starts highlighting now:

authors: PCarme ValWood kimrutherford


text:
missing annotation cdc2-12/scd1-delta

I had a note to check this. I must have noticed it was missing a while ago. It still didn't appear.

need to figure out why....haven't looked deeply but don't want to forget...

That's weird.  Do you know which session it's from?

Do you know which session it's from?

I thought it might be this session.  It has those two genes but I can't see that annotation:
https://curation.pombase.org/pombe/curs/3d43cf9a14d68a43/ro/

no but don't worry, I didn't look deeply, it might be int he logs. I need to track the session first. I usually do them before I forget... I just found this one hanging around...

https://curation.pombase.org/pombe/curs/3d43cf9a14d68a43/ro/

In this session, there is an annotation almost identical to the one in the screenshot, except that it's a single-allele scd1Δ phenotype annotation with cdc2-asM17 is in the background instead of a multi-allele phenotype.
That annotation does appear on the scd1 gene page.


text:
Wishlist branch with fixes and features

Hi Lanyon fans!
I love and use Lanyon for my GitHub Pages sites. Because this repo has been still for a little while, I created a branch called upstream-wishlist that includes some fixes and features. You're welcome to clone/fork it for your own use, too!
https://github.com/wireddown/wireddown.github.io/tree/upstream-wishlist
Changes from HEAD

Fix intra-site links

#108, #140, #180, #206, #209, #210, #225

Compatible with Jekyll 3

#124, #197

Added search page

#194

Added support for tags

#83

Thanks for having done this! Working on getting caught up.

authors: mdo wireddown

repo: poole/lanyon

license: mit


text:
🎉 New Extension: Bitbucket

here is the bitbucket open API spec
https://api.apis.guru/v2/specs/bitbucket.org/2.0/openapi.json

I think this is more updated one and it's also from official docs @saimanoj
Link

We've shifted away from the GraphQL approach, and as a result, we are no longer using the OpenAPI spec.

authors: AdityaSanthosh saimanoj

repo: poozlehq/engine


text:
Set up R/RStudio on GCP

Since many members of the Analysis team will be using R/RStudio, it'd be good to figure out an efficient way to set those up on GCP.
Some walkthroughs that I'll check out in the coming days:

https://medium.com/analytics-vidhya/running-r-rstudio-in-a-gcp-vm-21a8458ef086
https://towardsdatascience.com/r-studio-server-on-google-cloud-dd69b8bff80b
https://code.markedmondson.me/r-at-scale-on-google-cloud-platform/

We should also consider https://terra.bio/try-rstudio-in-terra/.

The first walkthrough above worked fine after a couple tweaks.
Basically spin up a VM, add a firewall rule, install R, RStudio Server and their dependencies, add user and that's all.
Bucket mounting with gcsfuse also works nicely, though need to figure out some permissions.
Nice GCP learning exercise overall.

authors: lgruen pdiakumis

repo: populationgenomics/team-docs


text:
Portainer cannot pull docker-stack.yml from local public GIT repository running as same host as portainer

Description
I created a new image that is based on nginx and has a public git repository that contains a docker-stack ,yml used for creating the wordpress stack.   I can pull from the created git repository:  git clone http://192.168.100.91/repo.git  without issue to my desktop.  When I configure the template.json or use stacks->add Stacks-> repository using Repository URL:  http://192.168.100.91/repo.git  and Compose path:  docker-stack.yml,  I get the following error: 2018/04/07 20:33:26 http error: unexpected EOF (code=500).  I cannot console into the portainer container to try and diagnose.  Is there something wrong with the way my public no credentials git repository is setup?  The logo and templates.json display without issue.

Steps to reproduce the issue:
Docker Host (Manager)
OS:				centos-release-7-4.1708.el7.centos.x86_64
IP:				192.168.100.91
Docker Version:	18.03.0-ce
Swarm:			192.168.100.91 is the Manager and there are  two other worker nodes.
Comment:		Both the containers and images below reside on this manager.  They are not in a 					swarm.

GIT Container
Description:  	This is a nginx git image for portainer logos, templates, and git repo
Image:	docker build -t portainertpl:1.0.0 .
Container: docker run -p 80:80 --name portainertpl --restart always portainertpl:1.0.0

Dockerfile for public local GIT repo that requires no credentials on http
FROM nginx:mainline-alpine

RUN apk add --no-cache git nano && \
    rm -rf /var/lib/apt/lists/* && \
    mkdir -p /usr/share/nginx/html/templates && \
    cd /usr/share/nginx/html/templates && \
    git init --shared && \
    git config user.name "admin" && \
    git config user.email "admin@someplace.com" && \
    git config --global http.followRedirects true

# Logo for displaying in portainer
COPY logo.png /usr/share/nginx/html/logo.png

# Docker stack file used from https://github.com/portainer/templates
COPY stacks/wordpress/docker-stack.yml /usr/share/nginx/html/templates/docker-stack.yml

# Docker stack file used from https://github.com/portainer/templates
# Modifed the repository settings for the wordpress stack to:
#"repository": {
#  "url": "http://192.168.100.91/repo.git",
#  "stackfile": "docker-stack.yml"
#}
COPY templates.json /usr/share/nginx/html/templates.json

RUN cd /usr/share/nginx/html/templates && \
    git add . && \
    git commit -m "initial commit" && \
    cd /usr/share/nginx/html && \
    git clone --bare --shared --dissociate /usr/share/nginx/html/templates repo.git && \
    cd /usr/share/nginx/html/repo.git && \
    chown -R nginx: /usr/share/nginx/html/repo.git && \
    chmod -R 777 /usr/share/nginx/html/repo.git && \
    git remote rm origin && \
    git update-server-info && \
    sed -i -r -e "s|#error_page  404              /404.html;|location ~* /\.git {\nsatisfy all;\nautoindex on;\nauth_basic off;\n}\n#error_page  404              /404.html;|g" /etc/nginx/conf.d/default.conf

VOLUME /git
WORKDIR /usr/share/nginx/html

EXPOSE 80

Portainer Container
Version:	1.16.5
Image:	docker pull	portainer/portainer
Container:
docker volume create portainer_data
docker run  --name portainer --restart=always -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Settings:
Use custom logo:		http://192.168.100.91/logo.png
Use custom templates:	http://192.168.100.91/templates.json

Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
Technical details:

Portainer version: 1.16.5
Target Docker version (the host/cluster you manage): 18.03.0-ce
Platform (windows/linux): : linux
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer):
docker run  --name portainer --restart=always -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Target Swarm version (if applicable):
Browser: Latest Chrome running on Windows 10

I have continued to try different configuration for the GIT container.  After reading Can't deploy stack from git repo (Gitea) #1481, I believe this is the same issue except it is with a locally created public http GIT repository.  There should be an option so that a stack can be deployed from the template without the need of GIT.

Ok, will close this issue and reference in #1481

repo: portainer/portainer

license: Zlib


text:
Strict firewall rules: image download failed, but Portainers says it is OK

Bug description
When the Firewall block the connection to some registries IP, Portainer shows a "image downloaded successfully" even if the download failed.
Expected behavior
An error should be shown.
Steps to reproduce the issue:
Block access to the registry and try to download the image.
Technical details:

Portainer version: 1.19.2
Docker version (managed by Portainer): Swarm 18.09.2
Platform (windows/linux): Linux

Additional context
Add any other context about the problem here.

@frafra I am unable to reproduce on 1.23.2. I blocked access to the registry by specifying 127.0.0.1 registry.domain.io in /etc/hosts. If this is incorrect, then let me know the correct way to block access on ubuntu or windows

If this is indeed reproduce-able in 1.23.2, I believe it is the same bug as #2822 albeit a different trigger for it

@itsconquest I would tag this one as a duplicate of #3123

@deviantony agreed, same bug

closing as duplicate of #3123

authors: deviantony frafra itsconquest


text:
Can't load more than container in docker swarm(using consul and overlay network)

Description

Steps to reproduce the issue:

run docker container to connect to swarm manager at swarm mode
go to browser: http://my_swarm_ip:9000
List container and have bug on console log of google chrome:

angular.js:2 TypeError: Cannot read property 'IPAddress' of undefined
    at new ContainerViewModel (http://10.10.5.143:9000/js/portainer.js:6:1649)
    at http://10.10.5.143:9000/js/portainer.js:6:15052
    at Array.map (native)
    at http://10.10.5.143:9000/js/portainer.js:6:15030
    at http://10.10.5.143:9000/js/angular.js:13:3189
    at http://10.10.5.143:9000/js/angular.js:2:31583
    at n.$eval (http://10.10.5.143:9000/js/angular.js:3:7034)
    at n.$digest (http://10.10.5.143:9000/js/angular.js:3:5584)
    at n.$apply (http://10.10.5.143:9000/js/angular.js:3:7328)
    at i (http://10.10.5.143:9000/js/angular.js:2:14661)(anonymous function) @ angular.js:2

Technical details:

Portainer version: container have latest tag on docker hub
Target Docker version (the host/cluster you manage):

Client:
 Version:      1.11.2
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   b9f10c9
 Built:        Wed Jun  1 21:47:50 2016
 OS/Arch:      linux/amd64

Server:
 Version:      swarm/1.2.3
 API version:  1.22
 Go version:   go1.5.4
 Git commit:   eaa53c7
 Built:        Fri May 27 17:25:03 UTC 2016
 OS/Arch:      linux/amd64

Target Swarm version (if applicable):

docker swarm 1.12 with consul discovery service - Server Version: swarm/1.2.3

Platform (windows/linux): ubuntu 14.04x64
Browser: Google chrome: 53.0.2785.101 (Official Build) (64-bit)

Problem seems to come from https://github.com/portainer/portainer/blob/develop/app/shared/viewmodel.js#L58

authors: deviantony lamhaison


text:
[edge compute] - Increment the Edge stack version number after an update

Increment the Edge stack version number after an Edge stack is updated.

The edge stack has a list (map[stackId]status) of stack ids and their status. Probably also when updating an edge stack this list should be emptied, so the user won't see the old status

triggering version update only when stack file is changed

Closed via #3746

authors: chiptus deviantony


text:
Allow custom icons for each environment

Neil Cresswell told me to open the feature request here.
Would be awesome to be able to change an environments icon in the overview of portainer server.
That would make it easier to find the environment you're looking for if you have a couple of them.
Thanks

Closing this as a duplicate of #5765.

authors: RandomLegend jamescarppe


text:
More README

Add examples on how to use, how to show UI, example of UI. Maybe a licence.

Here is a nice image:

repo: porty/httprecorder


text:
Push a new version to https://pypi.org/project/cmsis-svd/

The last release on PyPI was in 2016.

Given the many recently merged PRs, a new release would be helpful for making this easy to use.

@posborne Is there any timeline or blockers we can help with for pushing a new version to PyPI?
The Tock project is considering forking and pushing our own version to PyPI as we need some of the updates, but we would prefer to just use the official version if possible.

Hi @ppannuto, we can move something forward.  One items that has been discussed has been removing the SVD from the pypi package and having it just be the python code and relying on direct Github dep for the XML.  Would this work with your usage?

Umm, I think that would be fine. It's largely orthogonal to our concerns I think.
We're mostly interested in having a released version that includes this change: https://github.com/posborne/cmsis-svd/pull/56
A release that pushes the current state of the repository to PyPI now, deferring the SVD data question, would be much more valuable.

Has there been any further effort on this? A modern release that includes support for #56 would be very helpful.

Hi,
Would really like this patch too. I'm using this project in my arm-gdb tool, and the cluster support would be really helpful, since a lot of registers won't show up in many platforms. Cluster support is for what I can see something that was merged 5 years ago, back in 2018
Great tool though, really like it.

Work In Progress, see #192

authors: VincentDary bradjc kyberdin pengi posborne ppannuto

repo: posborne/cmsis-svd


text:
proxy list empty

I have followed the instructions and have done so with no errors, but when I run the command with the url in it. it says "proxies found : 0" and when I look in the proxy-list, there is nothing in it, how can I fix this?

Proxies were scrapped from the web, where if the layout of the website changes there is always a chance of not getting any proxies. Thanks for submitting an issue, I definitely will look into it.

Hey @boogieiskool , I have checked the code, it is working just fine, although here are some things that you can do to fix your problem :

Make sure you have installed Google Chrome (or Chromium) in your Computer.
Make sure you have downloaded the same chrome driver version as that of your Google Chrome version. For Google Chrome or Chromium version 102.0.5005.61 (i.e. latest version) use this chromedriver
Make sure after downloading this driver, you copy that to the youtube-viewbot folder.

Currently, the code base was made around 64bit Windows OS systems, I will be working on making it usable for all the systems with support for all other browsers with also automating all the major processes like downloading right webdriver, setting up proxies and finally using viewbot.

no wrking

authors: boogieiskool medicenplex poseidon-code

repo: poseidon-code/youtube-viewbot


text:
Creating deployment with Rmd file can give Internal Server Error

With the name example.Rmd the creation fails, but with the name static.Rmd it succeeds.
Example R Markdown document:
---
title: "Content Session Token"
output: html_document
---

```{r}
print(Sys.getenv("CONNECT_CONTENT_SESSION_TOKEN"))

Slack context: https://positpbc.slack.com/archives/C05D7NZD52S/p1730920268909369

We also have the Posit Publisher output

Output

time=2024-11-06T14:21:56.479-05:00 level=ERROR msg="Internal server error" error="runtime error: invalid memory address or nil pointer dereference"
time=2024-11-06T14:21:56.479-05:00 level=DEBUG msg="Stacktrace for previous error" stack="goroutine 61 [running]:\ngithub.com/posit-dev/publisher/internal/services/api.NewService.newHTTPService.PanicRecovery.func2.1()\n\t/home/runner/work/publisher/publisher/internal/services/middleware/panic_recovery.go:17 +0x7c\npanic({0x104c0ef60?, 0x104fdd2c0?})\n\t/opt/hostedtoolcache/go/1.23.1/x64/src/runtime/panic.go:785 +0x124\ngithub.com/posit-dev/publisher/internal/services/api.applyFileAction(0x0, {0x140002136a0?, 0x140004d2be0?}, {0x14000027290, 0x29})\n\t/home/runner/work/publisher/publisher/internal/services/api/post_config_files.go:35 +0xd0\ngithub.com/posit-dev/publisher/internal/services/api.RouterHandlerFunc.PostConfigFilesHandlerFunc.func17({0x104ca14c0, 0x140003290c0}, 0x1400012ef00)\n\t/home/runner/work/publisher/publisher/internal/services/api/post_config_files.go:86 +0x1cc\nnet/http.HandlerFunc.ServeHTTP(0x1400012edc0?, {0x104ca14c0?, 0x140003290c0?}, 0x1400034edb0?)\n\t/opt/hostedtoolcache/go/1.23.1/x64/src/net/http/server.go:2220 +0x38\ngithub.com/gorilla/mux.(*Router).ServeHTTP(0x140001ea300, {0x104ca14c0, 0x140003290c0}, 0x1400012ec80)\n\t/home/runner/work/publisher/publisher/vendor/github.com/gorilla/mux/mux.go:212 +0x194\ngithub.com/posit-dev/publisher/internal/services/api.RouterHandlerFunc.(*Cors).Handler.func26({0x104ca14c0, 0x140003290c0}, 0x1400012ec80)\n\t/home/runner/work/publisher/publisher/vendor/github.com/rs/cors/cors.go:289 +0x19c\nnet/http.HandlerFunc.ServeHTTP(0x104c9db40?, {0x104ca14c0?, 0x140003290c0?}, 0x140000b43c0?)\n\t/opt/hostedtoolcache/go/1.23.1/x64/src/net/http/server.go:2220 +0x38\ngithub.com/posit-dev/publisher/internal/services/api.NewService.newHTTPService.LogRequest.func1({0x104ca15f0, 0x140001681c0}, 0x1400012ec80)\n\t/home/runner/work/publisher/publisher/internal/services/middleware/log_request.go:93 +0xa0\ngithub.com/posit-dev/publisher/internal/services/api.NewService.newHTTPService.PanicRecovery.func2({0x104ca15f0?, 0x140001681c0?}, 0x0?)\n\t/home/runner/work/publisher/publisher/internal/services/middleware/panic_recovery.go:24 +0x6c\nnet/http.HandlerFunc.ServeHTTP(0x10?, {0x104ca15f0?,"

Took a look at this, and the error from the output may be a bit of a red hearing.
With some debugging I found that the Configuration that gets created from inspection doesn't have the entrypoint in the files field.
I'm still investigating, but in GetPossibleConfigs I'm seeing the typeDetector.InferType give us back a config that looks like:
{
  "comments": null,
  "$schema": "https://cdn.posit.co/publisher/schemas/posit-publishing-schema-v3.json",
  "type": "unknown",
  "validate": true,
  "hasParameters": false,
  "files": []
}

When we get to normalizeConfig there is nothing in cfg.Files and we try to add a cfg.Entrypoint but that doesn't exist in the config.

I'm thinking this may actually be two issues. It requires more investigation to be sure but

When creating the deployment it looks like when the file name is something other than static.Rmd we do not get prompted to select the type between quarto and rmd which is very odd

Feels like it is separate from the error we are seeing in output, and the no entrypoint being set.

repo: posit-dev/publisher


text:
AFR.com incorrect parsing

Platform: Linux, via https://github.com/feedbin/extract
Mercury Parser Version: 2.1.1

Expected Behavior
Should get the full article text of post https://www.afr.com/news/politics/national/tell-em-they-re-dreamin-on-energy-20190520-p51pcv
Current Behavior
Only gets half the article content, starting from the last <section> within the <main> which they use to wrap their main post. This means the content is incomplete.
Steps to Reproduce
Parse https://www.afr.com/news/politics/national/tell-em-they-re-dreamin-on-energy-20190520-p51pcv and compare the content extracted to the page text.
Detailed Description
I'm using the parser to collect records of fossil fuel company lobbying activities, and need the full post text for this analysis.
Having incomplete text means I need to manually review the statements that are missing.
Possible Solution
Possible solution might be to contribute a custom site extractor for this site.
I'm happy to have a crack at that and contribute a PR.
Best wishes,
Luke

Hi @equivalentideas, I recommend creating a custom parser. Please see: https://github.com/postlight/mercury-parser/blob/master/src/extractors/custom/README.md

authors: equivalentideas mtashley

repo: postlight/mercury-parser


text:
Pull request Issue #35 nanosleep

Was able to get nanosleep working
int main(int argc, char *argv[])
{
    init_hash_colors();
    image_t img;
    char *file;
    char *num;
    int c;
    struct timespec req;  // <-------------

    req.tv_sec = 0;     // <-------------
    opterr = 0;
    uint32_t cols = 0, precision = 0;
    uint8_t convert = 0;
    uint8_t true_color = 1;

Declared the timespec  struct above main in catimg.c , wasn't sure where you wanted it.
struct timespec {
    time_t tv_sec;  /* seconds */
    long   tv_nsec; /* nanoseconds */
};

I tested multiple gifs and provided them in the test-gifs directory, goku.gif is my only concern, as hes going super sayan way quicker with the nanosleep.
I checkout the gif in gimp and the background layer is labled as Background (1000ms) as where every other layer is formated such as frame 1 (40ms) (combine).  Not sure what the deal is. But besides for this, everything (all the other gifs I tested) appears to look very close to the same.

Issue #35

Sorry for the huge delay!
I tried this on OSX and it errors out with a redefinition of time spec:
Scanning dependencies of target catimg
[ 20%] Building C object CMakeFiles/catimg.dir/src/catimg.c.o
/Users/posva/catimg/src/catimg.c:41:8: error: redefinition of 'timespec'
struct timespec {
       ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/sys/_types/_timespec.h:33:1: note: previous definition is here
_STRUCT_TIMESPEC
^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/sys/_types/_timespec.h:29:40: note: expanded from macro '_STRUCT_TIMESPEC'
#define _STRUCT_TIMESPEC        struct timespec
                                       ^
1 error generated.
make[2]: *** [CMakeFiles/catimg.dir/src/catimg.c.o] Error 1
make[1]: *** [CMakeFiles/catimg.dir/all] Error 2
make: *** [all] Error 2

Using an #ifndef around the struct seems to make it work. Could you share the 2 or 3 of the gifs you tested with?

I apologize, its been so long. First of all, this program, in my opinion, reaches into the highest branches of top notchery, so good on you @posva, most people can't reach that high.
As for myself, I'll look into this issue a bit more.

No worries! Take the time you need
And thank you so much for the kind words 😄

timespec should be getting defined by time.h already, I don't see the need for defining the struct.

authors: E5ten posva zakgilbert

repo: posva/catimg


text:
Add opacity CSS property support

CSS opacity is not supported

I have created the toCssUnitWithPx function to address the issue where the toCssUnit function always converts numbers to pixels. This allows for branching between numeric-only CSS and pixel-based CSS. As a result, tests for properties like opacity and z-index are now passing.

repo: poteboy/kuma-ui


text:
Type conflict with PowerSyncDatabase and PowerSyncContext.Provider

import { PowerSyncContext } from '@powersync/react';
import { PowerSyncDatabase } from '@powersync/web';
import Logger from 'js-logger';
import React, { useEffect, useState } from 'react';

import { AppSchema } from '../resources/powersync/AppSchema';
import { DemoConnector } from '../resources/powersync/DemoConnector.web';

// Initialize the PowerSync database instance
export const db = new PowerSyncDatabase({
  schema: AppSchema,
  database: {
    dbFilename: 'powersync.db', // Filename for the SQLite database
    // dbLocation: 'path/to/directory' // Optional: Directory where the database file is located
  },
});
const ConnectorContext = React.createContext<DemoConnector | null>(null);
export const useConnector = () => React.useContext(ConnectorContext);

export const PowerSyncProvider: React.FC<{ children: React.ReactNode }> = ({
  children,
}) => {
  const [connector] = useState(new DemoConnector());
  const [powerSync] = useState(db);

  useEffect(() => {
    Logger.useDefaults(); // eslint-disable-line
    Logger.setLevel(Logger.DEBUG);

    // For console testing purposes
    // eslint-disable-next-line no-underscore-dangle, @typescript-eslint/no-explicit-any
    (window as any)._powersync = powerSync;

    // Initialize and connect the PowerSync database
    const setupPowerSync = async () => {
      await powerSync.connect(connector);
    };

    setupPowerSync().catch((error) => {
      // eslint-disable-next-line no-console
      console.error('Failed to setup PowerSync:', error);
    });
  }, [powerSync, connector]);

  return (
    <PowerSyncContext.Provider value={powerSync}>
      <ConnectorContext.Provider value={connector}>
        {children}
      </ConnectorContext.Provider>
    </PowerSyncContext.Provider>
  );
};

export default PowerSyncProvider;

one more for you all:
// Initialize the PowerSync database instance
export const powerSyncDb = new PowerSyncDatabase({
  schema: AppSchema,
  database: {
    dbFilename: 'powersync.db', // Filename for the SQLite database
    // dbLocation: 'path/to/directory' // Optional: Directory where the database file is located
  },
});

// @ts-expect-error type conflict, still works // TODO: fix
export const db = wrapPowerSyncWithKysely(powerSyncDb);

might be important:
this is on @powersync/web@0.0.0-dev-20240807140418

Thanks, still an issue.
I have /public folder commited. Using this script:
// This file is required for the dev build of powersync to work properly.
// It copies the necessary files from the node_modules/@powersync/web/dist directory to the public directory.
// Gets around the package being built with esm modules and not being able to be resolved by metro.
// This is a temporary solution until the package is updated.

const fs = require('fs');
const path = require('path');
// Source directory
const sourceDir = path.join(
  __dirname,
  'node_modules',
  '@powersync',
  'web',
  'dist',
);
const destDir = path.join(__dirname, 'public');
function copyRecursiveSync(src, dest) {
  if (fs.existsSync(src) && fs.statSync(src).isDirectory()) {
    // Create the destination directory if it doesn't exist
    if (!fs.existsSync(dest)) {
      fs.mkdirSync(dest, { recursive: true });
    }
    const files = fs.readdirSync(src);
    // Copy each file/directory
    files.forEach((file) => {
      const srcFile = path.join(src, file);
      const destFile = path.join(dest, file);
      if (fs.statSync(srcFile).isDirectory()) {
        copyRecursiveSync(srcFile, destFile);
      } else {
        fs.copyFileSync(srcFile, destFile);
      }
    });
  } else {
    // eslint-disable-next-line no-console
    console.error(
      `Source directory ${src} does not exist or is not a directory.`,
    );
  }
}
// Execute the copy
copyRecursiveSync(sourceDir, destDir);
// eslint-disable-next-line no-console
console.log(`Files copied from ${sourceDir} to ${destDir} successfully.`);

gives no diff

Looks good! @Chriztiaan

repo: powersync-ja/powersync-js


text:
Could not install package NFCForms 2.3.0

Install-Package : Could not install package 'NFCForms 2.3.0'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

go to C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile
there are bunch of folders named Porfile + "number"
look for a number before 111 mine was 78
now open yourproject.csproj
then change the number for TargetFrameworkProfile
Profile78
try to install again and it will work (at least worked for me)

Yes, that or you can download the source and change the PCL porfile.
Sorry guys I didn't see this before. Anyway I'm working on a totally new version :)

@soroush731, Yes I got it, thank you so much, Its working great.


text:
Update kubernetes/master/golang/master build

This is an automated PR via build-bot

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ltccci
To complete the pull request process, please assign  after the PR has been reviewed.
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ltccci
To complete the pull request process, please assign  after the PR has been reviewed.
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


text:
Update golang/master build

This is an automated PR via build-bot

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ltccci
To complete the pull request process, please assign  after the PR has been reviewed.
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


text:
Update golang/master build

This is an automated PR via build-bot

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ltccci
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


text:
Zaky team

gabung  beberapa component dan event

okee sipp


text:
Allow binding multiple textures for use in shaders

Prior to changes, there was no way to bind more than one texture for use in a shader. The changes creates a TextureUnit parameter on the GLWrapper Bind function to allow it to to bind textures to other texture units if so desired. A default of Texture0 is added as that is the most common use.
Additionally, to sample other texture units from a shader, sampler2D was added as a uniform on the Shader class. Previously this was not needed as the default value of 0 would always point to Texture0.

Thanks for this! The code is pretty solid. I've made two simple adjustments:

Removed the allocation from Reset(), in-favour of clearing the array.
Added a really simple and raw test to demonstrate this. We don't currently have pixel-based unit testing, but when that's added in the future this will be a prime candidate for it.

Also please avoid PRing from your master branch.

authors: Doddler smoogipoo

repo: ppy/osu-framework


text:
Planilha de dados trimestrais

É necessário elaborar um modelo de planilha a ser preenchido pelos líderes de equipe que quantifique:

Vídeos editados;
Lives realizadas;
Páginas escritas;
Páginas revisadas;
Roteiros criados;
Áudios editados;
Horas gastas em projetos.

Sugestões

Essa planilha servirá de base para a "prestação de contas" do programa para a comunidade e será alimentada constantemente pela equipe. Ela deve ser separada por equipe de trabalho.

Você quis dizer que devem ser separadas por área de trabalho? ou é por equipe mesmo? No caso de serem equipes elas precisam ser fixas, caso contrário dificulta bastante adequar isso em uma planilha, eu precisaria saber quais são essas equipes.

Você quis dizer que devem ser separadas por área de trabalho? ou é por equipe mesmo? No caso de serem equipes elas precisam ser fixas, caso contrário dificulta bastante adequar isso em uma planilha, eu precisaria saber quais são essas equipes.

As equipes de trabalho são: con-conteúdo, con desing, con-mídia e dev. Acho que o que tu entende por área é o que estamos acostumados a chamar de equipes.

@Claudineia-VR , qual horário que podemos marcar para alinharmos sobre a planilha de dados trimestrais?

Desculpem pela demora, eu já estava trabalhando nela, na verdade eu conclui ela ontem, está disponível para revisão na pasta "tarefas" e sub-pasta programa#285. Coloquei inicialmente um escopo geral que servirá como a "prestação de contas", e nas demais abas coloquei elas separadas por área e com espaço para descrever as atividades. Aguardo feedbacks!

Desculpem pela demora, eu já estava trabalhando nela, na verdade eu conclui ela ontem, está disponível para revisão na pasta "tarefas" e sub-pasta programa#285. Coloquei inicialmente um escopo geral que servirá como a "prestação de contas", e nas demais abas coloquei elas separadas por área e com espaço para descrever as atividades. Aguardo feedbacks!

@practice-uffs/lideres @practice-uffs/ger

Tenho duas sugestões.
O pessoal do mídia também produz roteiros para as produções internas, então acho que seria interessante ter esse também esse serviço no midia. Se eu não me engano todos os vídeos instrucionais técnicos o pessoal do midia fez os roteiros e teve a revisão do con-con.
Outro ponto é que nós no midia também produzimos alguns vídeos internos no PRACTICE, que envolvem o que eu falei antes, mas também envolvem gravação, pesquisa e posteriormente a edição.  Então ter algo como "vídeos produzidos" seria legal, até para diferenciar os vídeos de clientes com os vídeos que o próprio PRACTICE faz

Desculpem pela demora, eu já estava trabalhando nela, na verdade eu conclui ela ontem, está disponível para revisão na pasta "tarefas" e sub-pasta programa#285. Coloquei inicialmente um escopo geral que servirá como a "prestação de contas", e nas demais abas coloquei elas separadas por área e com espaço para descrever as atividades. Aguardo feedbacks!

Ficou muito bom, deixo algumas ideias de aprimoramento do documento...
a) adicionar no detalhamento uma coloca, "issue", sendo assim, seria possível adicionar o número da issue e ter como "rastrear" as tarefas;
b) Creio que podemos adicionar a equipe ger (auxilio e comunicação), creio que o organizacional demanda tempo e membros exclusivos do programa;
c) apenas para deixar registrado no arquivo (para as próximas gerações), adicionar notas para explicar o que é cada informação em especifico que devem ser inclusas no arquivo;
Deixo essas sugestões.

"Elementos visuais estabelecidos" me parece muito vago. O design desenvolve identidades visuais, materiais gráficos de divulgação (panfletos, folders, flyers, overlay das Lives), e também tem a revisão gráfica das produções internas da con-conteúdo.
Não sei se irão optar por descrever o materiais gráficos por página/arquivo ou por trabalho realizado. Penso que depende muito de como serão divididos os demais dados.
Agora vou deixar aqui minha declaração de desenvolvedora de software (e como eu tenho um pézinho no dev), "Aplicativos desenvolvidos" no dev me parece um tanto quanto irrealista, principalmente por se tratar de dados trimestrais. Isso é o @andrewmsilva que vai dizer de certeza.

@MaNegrao já adicionei suas sugestões na planilha;
@VIF-Franca também adicionei suas sugestões a) e b), quanto a b, preciso de algo breve para citas quais são os tipos de trabalhos prestados, aceito sugestões. Quanto a c), bem, acredito que a parte da descrição já esteja dentro da aba de cada área especifica nas tabelas de detalhamento;
@estelavilasboas concordo que o termo é vago, porém, todos os trabalhos realizados serão descritos na tabela de detalhamento dentro da aba de cada área, penso que desta forma mais resumida do escopo geral seja mais fácil visualizar todos os trabalhos realizados de maneira geral. De qualquer modo se conseguirem pensar em outros nomes para ''os tipos de trabalhos prestados'' de forma ampla eu troco, ou então se acharem que devo mudar o formato da planilha para detalhar mais;
Tenho um pouco de dificuldade ainda para entender os trabalhos específicos de cada área, estou pensando de forma mais ampla e deixando espaço para que estes possam ser descritos, mas todas as sugestões são bem vindas para melhorar este documento. ;)

@MaNegrao já adicionei suas sugestões na planilha;
@VIF-Franca também adicionei suas sugestões a) e b), quanto a b, preciso de algo breve para citas quais são os tipos de trabalhos prestados, aceito sugestões. Quanto a c), bem, acredito que a parte da descrição já esteja dentro da aba de cada área especifica nas tabelas de detalhamento;
@estelavilasboas concordo que o termo é vago, porém, todos os trabalhos realizados serão descritos na tabela de detalhamento dentro da aba de cada área, penso que desta forma mais resumida do escopo geral seja mais fácil visualizar todos os trabalhos realizados de maneira geral. De qualquer modo se conseguirem pensar em outros nomes para ''os tipos de trabalhos prestados'' de forma ampla eu troco, ou então se acharem que devo mudar o formato da planilha para detalhar mais;
Tenho um pouco de dificuldade ainda para entender os trabalhos específicos de cada área, estou pensando de forma mais ampla e deixando espaço para que estes possam ser descritos, mas todas as sugestões são bem vindas para melhorar este documento. ;)

creio que para o design de para adicionar identidades visuais, materiais gráficos de divulgação, e revisão gráfica na descrição de atividades da equipe, para que não fique muito vago.

Agora vou deixar aqui minha declaração de desenvolvedora de software (e como eu tenho um pézinho no dev), "Aplicativos desenvolvidos" no dev me parece um tanto quanto irrealista, principalmente por se tratar de dados trimestrais. Isso é o @andrewmsilva que vai dizer de certeza.

Respondendo a @estelavilasboas, posso dizer com certeza que é quase impossível produzir um app em um trimestre. Além do mais, geralmente nenhum sistema fica 100% pronto, pois sempre há algo a mais pra desenvolver, uma funcionalidade nova, coisas assim. Desenvolvimento é um processo evolutivo.
Confesso que é realmente difícil estabelecer métricas pra dev, tanto que isso é um tema de pesquisa bem recorrente na área. Pra simplificar, no dev poderia ser por funcionalidades implementadas, issues resolvidas, coisas assim. Mas aí pode ficar simplificado demais. De qualquer forma, é só uma sugestão

Eu estava pensando e tenho uma sugestão de métrica que podemos usar no mídia. Que são horas ou minutos de vídeos editados e lives feitas, ia ficar parecido com a questão dos textos que é por página. O que acham?

@MaNegrao já adicionei suas sugestões na planilha;
@VIF-Franca também adicionei suas sugestões a) e b), quanto a b, preciso de algo breve para citas quais são os tipos de trabalhos prestados, aceito sugestões. Quanto a c), bem, acredito que a parte da descrição já esteja dentro da aba de cada área especifica nas tabelas de detalhamento;
@estelavilasboas concordo que o termo é vago, porém, todos os trabalhos realizados serão descritos na tabela de detalhamento dentro da aba de cada área, penso que desta forma mais resumida do escopo geral seja mais fácil visualizar todos os trabalhos realizados de maneira geral. De qualquer modo se conseguirem pensar em outros nomes para ''os tipos de trabalhos prestados'' de forma ampla eu troco, ou então se acharem que devo mudar o formato da planilha para detalhar mais;
Tenho um pouco de dificuldade ainda para entender os trabalhos específicos de cada área, estou pensando de forma mais ampla e deixando espaço para que estes possam ser descritos, mas todas as sugestões são bem vindas para melhorar este documento. ;)

Ótimo!
Quanto ao item b), seguem as sugestões:

Atendimento ao cliente (exclusivamente responder os e-mails e informações pertinentes)
Construção de balanço de resultados das equipes (Visa sistematizar as informações brutas de cada equipe para relatórios)
Secretariado (participar das reuniões de todas as equipes e elaboração de documentos internos)

Quanto ao item c), é como no exemplo acima: cada item que consta nas planilhas poderia ser especificado por meio de uma nota de rodapé
Ex:
Nº DE TRABALHOS CONCLUÍDOS -----> Refere-se ao total de trabalhos entregues ao cliente, que tramitou por todo fluxo de trabalho das equipes, supervisão da gerência e que posteriormente teve aprovação do cliente.
PÁGINAS ESCRITAS -----> Refere-se à todo documento que possua estrutura básica de um texto: introdução, desenvolvimento e conclusão, que contenha no mínimo "xxxx" caracteres.
OBS: De início, parece muitos detalhes desnecessários, porém isso fará uma diferença futuramente quando outros membros precisarem das informações, pois já estarão padronizadas e estará claro o que propõe cada item.

Certo, na primeira aba da planilha, abaixo da tabela criei uma legenda para descrever cada item e estou descrevendo as que eu sei. Acredito que fique mais fácil se vocês definirem quais são os melhores nomes dos ''tipos de trabalhos'' para cada área se acaso os que eu coloquei não forem adequados.

Gostei bastante do que vi até agora @Claudineia-VR. Debateremos os possíveis refinamentos da tabela na reunião da equipe de auxílio gerencial essa semana.

Aos interessados, mais alguma sugestão de melhoria na planilha? peço que se manifestem para que eu possa concluir e então fechar essa issue.

Aos interessados, mais alguma sugestão de melhoria na planilha? peço que se manifestem para que eu possa concluir e então fechar essa issue.

Estávamos conversando na reunião da mídia hoje sobre utilizar alguns dados das lives do PRACTICE, talvez como o número de visualizações e o tempo de exibição... acho que o @robisonjose sabe explicar melhor.

Acho isso relevante, porém, acredito que nesta planilha o tempo de exibição das lives estará somado ao ''Total de horas dedicadas'', e o número de visualizações pode ser exposto na parte de ''Detalhamento'' na coluna de ''Descrição''. Não sei separa vocês faz sentido, mas no caso de acrescentar uma coluna ou linha para essas informações as das outras atividades do mídia e das demais equipes ficariam com espaços vazios...
O que acham, da para manter como está e vocês exporem na descrição as informações extras?

Boa tarde, @Claudineia-VR.
Acredito que daria para fazer como você mencionou.

A planilha foi concluída e movida para a pasta ''materiais'' na subpasta Comunicação.

authors: Claudineia-VR MaNegrao VIF-Franca alessandrapedrotti andrewmsilva estelavilasboas luizatonial mariagelain robisonjose

repo: practice-uffs/programa