Hi Kush,
It's great to see many interesting ideas. I think it would be good to
focus on a much narrower set of improvements: each bullet point could be
discussed in its own thread, I would say. In this form, it will be hard
to keep the discussion focused.
Antonin
On 30/08/2020 16:45,
kusht...@gmail.com wrote:
> Hi Team,
>
> As the call for proposals is open, I would like to present my interest
> in handling a few of the topics mentioned in the notice.
>
> 1.) *Regarding documentation for contributors*
> *
> *
> For the following, I propose that we should add a header navigation item
> in our ongoing developing documentation site which may rather redirect
> to another page or a new website depending on what community feels
> appropriate. As a contributor when I first started contributing to
> OpenRefine, I felt there are various things which we can document more
> appropriately to have smoother cont which means whether you want to spin a server or just UI, the later will spin up irrespective of your need. Here comes the challenging part, since the UI tests will be invoked through the continuous integration runner we may need to decouple the server and UI so that UI testing can be accomplished. Most of the testing tools are node-based which means you will have to use npm or yarn to invoke the testing scripts, run tests, and have successful assertions. With the present architecture, it would be difficult to test the UI, as you need a standalone UI which may serve as a demo for e2e tests & will make requests to the server either spin up in another CI job or hosted on Heroku or any other platform. The decoupling will not only be helpful for testing but for the future when the OpenRefine Team may want to move away from jQuery to a modular javascript framework.
Having integration tests for functionalities like uploading datasets,
sorting & filtering, scrolling & pagination, switch between the type of
data-sets, rendering of menu items and rendering of dialogues to be
taken care first before moving to complex functionalitiributor on-boarding.
>
> * A welcome bot in our Gitter channel which will give out an automated
> response whenever a new contributor jumps in & say `Hello World`, we
> can change the world according to our need. In the automated
> response, we can redirect to the documentation site where all the
> required info will be populated.
> * We need to document the architecture of OpenRefine & give a
> repository overview simplifying how our frontend code is organised
> and how our backend service works. OpenRefine's UI directory and
> structure need to be presented in a simpler manner by which the
> contributor can understand which piece of code is responsible for
> what, and which file should I change to see changes on the following
> page. Adding more to this, a video tutorial/walkthrough of which means whether you want to spin a server or just UI, the later will spin up irrespective of your need. Here comes the challenging part, since the UI tests will be invoked through the continuous integration runner we may need to decouple the server and UI so that UI testing can be accomplished. Most of the testing tools are node-based which means you will have to use npm or yarn to invoke the testing scripts, run tests, and have successful assertions. With the present architecture, it would be difficult to test the UI, as you need a standalone UI which may serve as a demo for e2e tests & will make requests to the server either spin up in another CI job or hosted on Heroku or any other platform. The decoupling will not only be helpful for testing but for the future when the OpenRefine Team may want to move away from jQuery to a modular javascript framework.
Having integration tests for functionalities like uploading datasets,
sorting & filtering, scrolling & pagination, switch between the type of
data-sets, rendering of menu items and rendering of dialogues to be
taken care first before moving to complex functionaliti:
> OpenRefine's codebase will be cream to the top.
> * Pull request process needs to be jotted down & the contribution
> workflow starting from how to get yourself an issue to how to get
> your PR successfully merged need s to be exposed.
> * Other areas which can be separated from the basic contributing
> documentation can include documenting the release process, setting
> up IDE, and testing guidelines.
> * One thing which I would like to propose from my side to establish
> governance in OpenRefine Organisation which would clearly highlight
> what roles we have like Org Member, Contributor, Maintainer and Admin.
>
> 2.) *UI t**esting improvements*
>
> * Given a previous thread on UI Testing, the team have had enough
> discussion around why we need UI Testing & the tools which we may
> use. Out of the discussion Selenium, Cypress, and playwright were
> the more focussed ones with more bending towards playwright. So I
> will be making my further points ahead with the assumption that the
> team has decided to move on ahead with the playwright.
> * As of now, OpenRefine's UI and Server are coupled together which
> means whether you want to spin a server or just UI, the later will
> spin up irrespective of your need. Here comes the challenging part,
> since the UI tests will be invoked through the continuous
> integration runner we may need to decouple the server and UI so that
> UI testing can be accomplished. Most of the testing tools are
> node-based which means you will have to use npm or yarn to invoke
> the testing scripts, run tests, and have successful assertions. With
> the present architecture, it would be difficult to test the UI, as
> you need a standalone UI which may serve as a demo for e2e tests &
> will make requests to the server either spin up in another CI job or
> hosted on Heroku or any other platform. The decoupling will not only
> be helpful for testing but for the future when the OpenRefine Team
> may want to move away from jQuery to a modular javascript framework.
> * Having integration tests for functionalities like uploading
> datasets, sorting & filtering, scrolling & pagination, switch
> between the type of data-sets, rendering of menu items and rendering
> of dialogues to be taken care first before moving to complex
> functionalities which may take time.
> * Having integration tests for reconciliation, reconciliation viewer,
> filter & sorting windows comes next as these actions put a load on
> the server and take several seconds to complete.
>
> Apart from the above, I would like to propose a revamped website for
> OpenRefine. As there is on-going development for documentation website
> which looks quite modular, I suggest we should also consider revamping
> the
openrefine.org to a modern fresh look. We can either switch the
> Jekyll theme or can migrate to gatsby for modernisation with a headless
> CMS to manage the blog posts too.
>
> This thread serves as an initiation of the discussion around my proposed
> idea/suggestions. All of the above points need further discussion before
> finalising any.
>
> All the suggestions/queries/changes are welcome from the OpenRefine team
> and community, all the above approach can be changed according to what
> community suggests.
>
> Thanks & Regards
> Kush Trivedi
>
> --
> You received this message because you are subscribed to the Google
> Groups "OpenRefine Development" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
openrefine-de...@googlegroups.com
> <mailto:
openrefine-de...@googlegroups.com>.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/openrefine-dev/44983640-3511-4dd8-9a41-539ca2723efcn%40googlegroups.com
> <
https://groups.google.com/d/msgid/openrefine-dev/44983640-3511-4dd8-9a41-539ca2723efcn%40googlegroups.com?utm_medium=email&utm_source=footer>.