marat.snowbear's blog

By marat.snowbear, 4 years ago, In English,

I'd like to start a discussion on how CF community is involved or at least notified about the changes happening in CF and in CF API in particular.

It seems that there are people more or less constantly working on implementing some new features on CF. And sometimes we can see blog posts from MikeMirzayanov or somebody from CF team highlighting a list of changes which happened during some period, but these posts are very rare, they are published like once or twice per year, while it seems that we have something changed almost every month. CF has very strong community, some people from the community do something on their own built on top of CF web site or CF API (submit solution from command line, VIM plugin, my CF achievements project). For all of us it is critical to be aware of changes happening on CF. For example this submission script stopped working after CSRF security fix. Another example I found today: since it's launch CF API had a bug that when retrieving hacks hacker and defender were swapped, turns out this was fixed several weeks ago. My achievements web site relies on retrieving hacks through CF API, so I had a workaround to swap them back, and turns out it's broken for several weeks because there is no need to swap hacker&defender anymore. Of course I can blame myself in this as well, I should have implement a check because I expected that CF will fix the bug at some point, but still I think it would be great if CF administration could inform us about such changes happening (hopefully in advance of course).

So my main concern is that CF community is not informed well about some important changes happening on CF, it makes it harder to do something on top of CF if you are not even aware when API is changing or some bug is being fixed. I'm not sure how it should be handled though, CF blogs do not seem to be a good solution in this case because they get almost no attention as soon as they go off the 'recent actions' list. Also major part of the community might be not interested in these updates. I'm not asking to implement something for this particular purpose, even simple mailing list will work fine for me.

Another point similar to the one I discussed above is that it's not clear how community can affect the development of CF API. Obviously CF API is implemented for the community so we should have a way to tell CF what we actually need. For example while working on CF Achievements site there were several places where CF API was not enough to grab all the data I need and I wanted to inform CF about it, but I don't what's the best way to do it:

  1. PM to Mike? Quite often he might be busy, might not have time to respond, etc. Also again it leaves the entire community uninformed. Some other people in community might also need similar features so it doesn't seem to make sense to discuss this topic in PM.

  2. Ivan's introduction of CF API blog post? But it's quite old, I don't think anybody from CF team monitors it, Ivan is not working in CF anymore.

  3. Create a new blog post? Also doesn't seem to be a good option. It will be lost as soon as it will go off 'recent actions' list, it might be unnoticed by CF team.

Again, I'm not sure what is the best option to handle it, but something like issue tracker should do it well.

So I want to discuss this topic here both with the community and with CF administration. It might be a case that community is happy with the way it is right now, in this case I'll just switch back to PM'ing CF administration :-)

  • Vote: I like it
  • +47
  • Vote: I do not like it

4 years ago, # |
Rev. 2   Vote: I like it +13 Vote: I do not like it

I would like to second your notion because the points you brought up are valid and are swept under the rug. Without issue tracking, it'd be difficult for CF-API developers to know which part of a feature changed when. Because while in development, lot of assumptions are in place on a project. For example, you may think that a particular property would have x number of values in a designated format, but if this does change in the future that might inadvertently break some projects. The only solution to this I can think of is to write unit tests for api and run them once in a while. Still, it does make sense to update the community about changes in API. Just an extra page noting fix dates on API section would at least keep us informed.

4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Maybe it will be good to create issue-tracker in tab "API" between "Introduction" and "Methods"?
It can be page like /5years, as I remember it wasn't in 'recent actions', but it will be always easy to find and in one place

4 years ago, # |
  Vote: I like it +11 Vote: I do not like it

For all of us it is critical to be aware of changes happening on CF. For example this submission script stopped working after CSRF security fix

I think nothing wrong in this case, because such stuff shouldn't be public anyway. Waiting for public api methods like problem.submit, problem.testcases, etc.
Maybe it will appear in the nearest future. Session is coming, SGU students should defend their courseworks and diplomas :)